|
| 1 | +import { pathsToModuleNameMapper } from './paths-to-module-name-mapper' |
| 2 | +import { logTargetMock } from '../__helpers__/mocks' |
| 3 | + |
| 4 | +const tsconfigMap = { |
| 5 | + log: ['src/util/log'], |
| 6 | + server: ['src/server'], |
| 7 | + 'util/*': ['src/util/*'], |
| 8 | + 'api/*': ['src/api/*'], |
| 9 | + 'test/*': ['test/*'], |
| 10 | + 'mocks/*': ['test/mocks/*'], |
| 11 | + 'test/*/mock': ['test/mocks/*'], |
| 12 | +} |
| 13 | + |
| 14 | +describe('pathsToModuleNameMapper', () => { |
| 15 | + it('should convert tsconfig mapping', () => { |
| 16 | + expect(pathsToModuleNameMapper(tsconfigMap)).toMatchInlineSnapshot(` |
| 17 | +Object { |
| 18 | + "^api/(.*)$": "src/api/$1", |
| 19 | + "^log$": "src/util/log", |
| 20 | + "^mocks/(.*)$": "test/mocks/$1", |
| 21 | + "^server$": "src/server", |
| 22 | + "^test/(.*)$": "test/$1", |
| 23 | + "^test/(.*)/mock$": "test/mocks/$1", |
| 24 | + "^util/(.*)$": "src/util/$1", |
| 25 | +} |
| 26 | +`) |
| 27 | + }) |
| 28 | + |
| 29 | + it('should use the given prefix', () => { |
| 30 | + expect(pathsToModuleNameMapper(tsconfigMap, { prefix: '<rootDir>/' })) |
| 31 | + .toMatchInlineSnapshot(` |
| 32 | +Object { |
| 33 | + "^api/(.*)$": "<rootDir>/src/api/$1", |
| 34 | + "^log$": "<rootDir>/src/util/log", |
| 35 | + "^mocks/(.*)$": "<rootDir>/test/mocks/$1", |
| 36 | + "^server$": "<rootDir>/src/server", |
| 37 | + "^test/(.*)$": "<rootDir>/test/$1", |
| 38 | + "^test/(.*)/mock$": "<rootDir>/test/mocks/$1", |
| 39 | + "^util/(.*)$": "<rootDir>/src/util/$1", |
| 40 | +} |
| 41 | +`) |
| 42 | + }) |
| 43 | + |
| 44 | + it('should warn about mapping it cannot handle', () => { |
| 45 | + const log = logTargetMock() |
| 46 | + log.clear() |
| 47 | + expect( |
| 48 | + pathsToModuleNameMapper({ |
| 49 | + kept: ['src/kept'], |
| 50 | + 'no-target': [], |
| 51 | + 'too-many-target': ['one', 'two'], |
| 52 | + 'too/*/many/*/stars': ['to/*/many/*/stars'], |
| 53 | + }), |
| 54 | + ).toMatchInlineSnapshot(` |
| 55 | +Object { |
| 56 | + "^kept$": "src/kept", |
| 57 | + "^too\\\\-many\\\\-target$": "one", |
| 58 | +} |
| 59 | +`) |
| 60 | + expect(log.lines.warn).toMatchInlineSnapshot(` |
| 61 | +Array [ |
| 62 | + "[level:40] Not mapping \\"no-target\\" because it has no target. |
| 63 | +", |
| 64 | + "[level:40] Mapping only to first target of \\"too-many-target\\" becuase it has more than one (2). |
| 65 | +", |
| 66 | + "[level:40] Not mapping \\"too/*/many/*/stars\\" because it has more than one star (\`*\`). |
| 67 | +", |
| 68 | +] |
| 69 | +`) |
| 70 | + }) |
| 71 | +}) |
0 commit comments