|
3 | 3 | import { describe, expect, test } from '@jest/globals';
|
4 | 4 | import { runTransformTest } from 'codemod-cli';
|
5 | 5 | import { setTelemetry } from 'ember-codemods-telemetry-helpers';
|
6 |
| -import { RuntimeResolver } from './helpers/resolver'; |
| 6 | +import { |
| 7 | + EmbroiderResolver, |
| 8 | + HasNodeResolve, |
| 9 | + NodeResolution, |
| 10 | + RuntimeResolver, |
| 11 | +} from './helpers/resolver'; |
7 | 12 | import { setupResolver } from './test-helpers';
|
8 | 13 |
|
9 | 14 | process.env['TESTING'] = 'true';
|
@@ -63,4 +68,43 @@ describe('Resolver', () => {
|
63 | 68 | expect(resolver.has('ambiguous', 'nope')).toBe(false);
|
64 | 69 | });
|
65 | 70 | });
|
| 71 | + |
| 72 | + describe('EmbroiderResolver', () => { |
| 73 | + test('.has', () => { |
| 74 | + const entryPoint = 'foo'; |
| 75 | + class mockNodeResolver implements HasNodeResolve { |
| 76 | + nodeResolve(specifier: string, fromFile: string): NodeResolution { |
| 77 | + expect(fromFile).toEqual(entryPoint); |
| 78 | + const resolution = { |
| 79 | + '#embroider_compat/components/gherkyn': 'real' as const, |
| 80 | + '#embroider_compat/ambiguous/gherkyn': 'real' as const, |
| 81 | + '#embroider_compat/components/welcome-page': 'real' as const, |
| 82 | + '#embroider_compat/ambiguous/welcome-page': 'real' as const, |
| 83 | + '#embroider_compat/helpers/cucumbyr': 'real' as const, |
| 84 | + '#embroider_compat/ambiguous/cucumbyr': 'real' as const, |
| 85 | + '#embroider_compat/ambiguous/virtual': 'virtual' as const, |
| 86 | + }[specifier]; |
| 87 | + return { type: resolution ?? 'not_found' }; |
| 88 | + } |
| 89 | + } |
| 90 | + |
| 91 | + const resolver = new EmbroiderResolver(new mockNodeResolver(), entryPoint); |
| 92 | + |
| 93 | + expect(resolver.has('component', 'gherkyn')).toBe(true); |
| 94 | + expect(resolver.has('component', 'welcome-page')).toBe(true); |
| 95 | + expect(resolver.has('component', 'cucumbyr')).toBe(false); |
| 96 | + expect(resolver.has('component', 'nope')).toBe(false); |
| 97 | + |
| 98 | + expect(resolver.has('helper', 'gherkyn')).toBe(false); |
| 99 | + expect(resolver.has('helper', 'welcome-page')).toBe(false); |
| 100 | + expect(resolver.has('helper', 'cucumbyr')).toBe(true); |
| 101 | + expect(resolver.has('helper', 'nope')).toBe(false); |
| 102 | + |
| 103 | + expect(resolver.has('ambiguous', 'gherkyn')).toBe(true); |
| 104 | + expect(resolver.has('ambiguous', 'welcome-page')).toBe(true); |
| 105 | + expect(resolver.has('ambiguous', 'cucumbyr')).toBe(true); |
| 106 | + expect(resolver.has('ambiguous', 'nope')).toBe(false); |
| 107 | + expect(resolver.has('ambiguous', 'virtual')).toBe(true); |
| 108 | + }); |
| 109 | + }); |
66 | 110 | });
|
0 commit comments