UNPKG

@alleyinteractive/build-tool

Version:

An opinionated set of build configurations for wp-scripts

112 lines 4.65 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); /* eslint-disable no-console */ const path_1 = __importDefault(require("path")); const fs_1 = __importDefault(require("fs")); const webpack_1 = require("./webpack"); describe('getEntries', () => { const testEntryPath = path_1.default.join(process.cwd(), 'test-entries'); beforeAll(() => { const testEntries = [ 'entry1', 'entry2', ]; try { if (!fs_1.default.existsSync(testEntryPath)) { fs_1.default.mkdirSync(testEntryPath); fs_1.default.writeFileSync(path_1.default.join(testEntryPath, 'README.md'), ''); fs_1.default.writeFileSync(path_1.default.join(testEntryPath, '.gitkeep'), ''); } } catch (error) { console.error(`Failed to create directory ${testEntryPath}`, error); } testEntries.forEach((entry) => { try { if (!fs_1.default.existsSync(path_1.default.join(testEntryPath, entry))) { fs_1.default.mkdirSync(path_1.default.join(testEntryPath, entry)); } if (!fs_1.default.existsSync(path_1.default.join(testEntryPath, entry, 'index.js'))) { fs_1.default.writeFileSync(path_1.default.join(testEntryPath, entry, 'index.js'), ''); } } catch (error) { console.error(`Failed to create directory ${testEntryPath}/${entry}`, error); } }); }); afterAll(() => { fs_1.default.rm(testEntryPath, { recursive: true }, (err) => { if (err) { console.error(`Failed to remove directory ${testEntryPath}`, err); } }); }); it('returns an empty object if the directory does not exist', () => { const result = (0, webpack_1.getEntries)('nonexistent-directory'); expect(result).toEqual({}); }); it('returns an object of entries if the directory exists', () => { const result = (0, webpack_1.getEntries)('test-entries'); expect(result).toEqual({ 'test-entries-entry1': path_1.default.join(testEntryPath, 'entry1'), 'test-entries-entry2': path_1.default.join(testEntryPath, 'entry2'), }); }); it('ignores .gitkeep and README.md files', () => { const result = (0, webpack_1.getEntries)('test-entries'); expect(result).not.toHaveProperty('test-entries-.gitkeep'); expect(result).not.toHaveProperty('test-entries-README.md'); }); }); describe('processFilename', () => { it('returns a filename in the format "[name].[ext]" for non-block entries', () => { const pathData = { chunk: { name: 'my-chunk', }, }; const result = (0, webpack_1.processFilename)(pathData, false, 'js'); expect(result).toBe('[name].js'); }); it('constructs a filename excluding the "entries" prefix with the directory name and "/index.[ext]" for entries with setAsIndex=true', () => { const pathData = { chunk: { name: 'entries-my-entry', }, }; const result = (0, webpack_1.processFilename)(pathData, true, 'js'); expect(result).toBe('my-entry/index.js'); }); it('constructs a filename excluding the "entries" prefix with the directory name and "/[name].[ext]" for entries with setAsIndex=false', () => { const pathData = { chunk: { name: 'entries-my-entry', }, }; const result = (0, webpack_1.processFilename)(pathData, false, 'js'); expect(result).toBe('my-entry/[name].js'); }); it('uses the runtime as the name format source when dirnameSource="runtime"', () => { const pathData = { chunk: { runtime: 'entries-my-runtime', }, }; const result = (0, webpack_1.processFilename)(pathData, false, 'js', 'runtime'); expect(result).toBe('my-runtime/[name].js'); }); it('uses the default dirname source "name" when dirnameSource is not provided', () => { const pathData = { chunk: { name: 'my-chunk', }, }; const result = (0, webpack_1.processFilename)(pathData, false, 'js'); expect(result).toBe('[name].js'); }); }); //# sourceMappingURL=webpack.test.js.map