archunit
Version:
ArchUnit TypeScript is an architecture testing library, to specify and assert architecture rules in your TypeScript app
32 lines • 1.47 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
const slicing_projections_1 = require("./slicing-projections");
describe('slicingProjections', () => {
it('slices sub directories', () => {
const edge = {
source: 'src/service/blub/Service.ts',
target: 'src/facade/bla/Facade.ts',
external: false,
importKinds: [],
};
expect((0, slicing_projections_1.sliceByPattern)('src/(**)/')(edge)?.sourceLabel).toEqual('service');
expect((0, slicing_projections_1.sliceByPattern)('src/(**)/')(edge)?.targetLabel).toEqual('facade');
});
it('slices on top level', () => {
const edge = {
source: 'src/service/Service.ts',
target: 'src/facade/Facade.ts',
external: false,
importKinds: [],
};
expect((0, slicing_projections_1.sliceByPattern)('src/(**)')(edge)?.sourceLabel).toEqual('service');
expect((0, slicing_projections_1.sliceByPattern)('src/(**)')(edge)?.targetLabel).toEqual('facade');
});
it("detects missing '(**)' in slice pattern", () => {
expect(() => (0, slicing_projections_1.sliceByPattern)('src/(*')).toThrowError();
});
it("slices too many occurances of '(**)' in slice pattern", () => {
expect(() => (0, slicing_projections_1.sliceByPattern)('src/(**)/(**)')).toThrowError();
});
});
//# sourceMappingURL=slicing-projections.spec.js.map
;