Skip to content

Commit 9bb69dc

Browse files
committed
add test
1 parent 1064419 commit 9bb69dc

File tree

1 file changed

+70
-0
lines changed

1 file changed

+70
-0
lines changed

packages/plugin-catalog/tests/utils.test.ts

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -437,5 +437,75 @@ describe(`utils`, () => {
437437
expect(result).toBe(modifiedDescriptor);
438438
expect(result.range).toBe(`npm:^18.0.0-modified`);
439439
});
440+
441+
it(`should preserve patch: protocol when resolving catalog reference`, () => {
442+
const catalog = new Map();
443+
catalog.set(`typescript`, `patch:typescript@npm%3A^5.9.3#optional!builtin<compat/typescript>`);
444+
configuration.values.set(`catalog`, catalog);
445+
446+
const dependency = structUtils.makeDescriptor(
447+
structUtils.makeIdent(null, `typescript`),
448+
`catalog:`,
449+
);
450+
451+
// Mock the resolver to return the patch descriptor
452+
const patchRange = `patch:typescript@npm%3A^5.9.3#optional!builtin<compat/typescript>`;
453+
const patchDescriptor = structUtils.makeDescriptor(
454+
structUtils.makeIdent(null, `typescript`),
455+
patchRange,
456+
);
457+
mockResolver.bindDescriptor.mockReturnValue(patchDescriptor);
458+
459+
const result = resolveDescriptorFromCatalog(project, dependency, mockResolver, resolveOptions);
460+
461+
expect(result.range).toBe(patchRange);
462+
expect(result.range).toMatch(/^patch:/);
463+
});
464+
465+
it(`should preserve portal: protocol when resolving catalog reference`, () => {
466+
const catalog = new Map();
467+
catalog.set(`my-package`, `portal:../local-package`);
468+
configuration.values.set(`catalog`, catalog);
469+
470+
const dependency = structUtils.makeDescriptor(
471+
structUtils.makeIdent(null, `my-package`),
472+
`catalog:`,
473+
);
474+
475+
const portalRange = `portal:../local-package`;
476+
const portalDescriptor = structUtils.makeDescriptor(
477+
structUtils.makeIdent(null, `my-package`),
478+
portalRange,
479+
);
480+
mockResolver.bindDescriptor.mockReturnValue(portalDescriptor);
481+
482+
const result = resolveDescriptorFromCatalog(project, dependency, mockResolver, resolveOptions);
483+
484+
expect(result.range).toBe(portalRange);
485+
expect(result.range).toMatch(/^portal:/);
486+
});
487+
488+
it(`should preserve link: protocol when resolving catalog reference`, () => {
489+
const catalog = new Map();
490+
catalog.set(`my-package`, `link:../linked-package`);
491+
configuration.values.set(`catalog`, catalog);
492+
493+
const dependency = structUtils.makeDescriptor(
494+
structUtils.makeIdent(null, `my-package`),
495+
`catalog:`,
496+
);
497+
498+
const linkRange = `link:../linked-package`;
499+
const linkDescriptor = structUtils.makeDescriptor(
500+
structUtils.makeIdent(null, `my-package`),
501+
linkRange,
502+
);
503+
mockResolver.bindDescriptor.mockReturnValue(linkDescriptor);
504+
505+
const result = resolveDescriptorFromCatalog(project, dependency, mockResolver, resolveOptions);
506+
507+
expect(result.range).toBe(linkRange);
508+
expect(result.range).toMatch(/^link:/);
509+
});
440510
});
441511
});

0 commit comments

Comments
 (0)