UNPKG

yaml-js-include

Version:

Extension for yaml-js library to be able to include files/directories in yaml files

76 lines (59 loc) 2.67 kB
import { YamlInclude } from '..'; describe('Sequence include', () => { beforeEach(() => { process.chdir(__dirname); }); it('Includes basic directory', () => { const yi = new YamlInclude(); const actual = yi.load<any>('fixtures/basics/directory.seq.yaml'); expect(actual.pages.length).toBe(4); expect(actual.pages.find(p => p.name === "first")).toBeDefined(); expect(actual.pages.find(p => p.name === "sixth")).toBeDefined(); expect(actual.pages.find(p => p.name === "second")).toBeDefined(); expect(actual.pages.find(p => p.name === "fourth")).toBeDefined(); }); it('Includes directory with file ref', () => { const yi = new YamlInclude(); const actual = yi.load<any>('fixtures/basics/directory.seq.pages.yaml'); expect(actual.pages.length).toBe(1); expect(actual.pages[0].name).toBe('third'); expect(actual.pages[0].values.type).toBe('Help'); expect(actual.pages[0].values.value).toBe('Wanted'); }); it('Ignores files with prefix', () => { const yi = new YamlInclude({ ignoreIndicator: '$' }); const actual = yi.load<any>('fixtures/basics/directory.seq.yaml'); expect(actual.pages.find(p => p.name === "fifth")).toBeDefined(); expect(actual.pages.find(p => p.name === "sixth")).toBeUndefined(); }); ['_fifth', '_fifth.page.yaml'].forEach((file) => { it(`Includes files as ${file}`, () => { const yi = new YamlInclude({ include: [file] }); const actual = yi.load<any>('fixtures/basics/directory.seq.yaml'); expect(actual.pages.find(p => p.name === "fifth")).toBeDefined(); }); }); ['$sixth', '$sixth.page.yaml'].forEach((file) => { it(`Excludes files as ${file}`, () => { const yi = new YamlInclude({ exclude: [file] }); const actual = yi.load<any>('fixtures/basics/directory.seq.yaml'); expect(actual.pages.find(p => p.name === "sixth")).toBeUndefined(); }); }); it('Includes basic directory not recursive', () => { const yi = new YamlInclude({ recursive: false }); const actual = yi.load<any>('fixtures/basics/directory.seq.yaml'); expect(actual.pages.length).toBe(3); expect(actual.pages.find(p => p.name === "first")).toBeDefined(); expect(actual.pages.find(p => p.name === "second")).toBeDefined(); expect(actual.pages.find(p => p.name === "sixth")).toBeDefined(); }); it('Includes files directly if first argument is array', () => { const yi = new YamlInclude(); const actual = yi.load<any>( 'fixtures/basics/extra/directoryFirstArgumentArray.seq.yaml', ); expect(actual.pages.length).toBe(1); expect(actual.pages[0].name).toBe('first'); }); });