import { exists, mkdir, readFile, remove, writeFile } from 'fs-extra'; import { join } from 'path'; import htmlpack from '.'; const outputDirectory = './test-output'; describe('htmlpack/index', () => { beforeEach(async () => { if (await exists(outputDirectory)) { await remove(outputDirectory); } await mkdir(outputDirectory); }); test('should convert HTML into a single file', async () => { const outputFile = join(outputDirectory, 'output.html'); await htmlpack(join('test-data', 'index.html'), outputFile); const outputContent = await readFile(outputFile, 'utf8'); expect(outputContent).toBe(`
Test paragraph
`); }); test('should not throw when a script asset is missing', async () => { const inputFile = join(outputDirectory, 'input.html'); const outputFile = join(outputDirectory, 'output.html'); const inputHtml = `Test
`; await writeFile(inputFile, inputHtml, 'utf8'); await htmlpack(inputFile, outputFile); const outputContent = await readFile(outputFile, 'utf8'); expect(outputContent).toContain('Test
'); }); test('should preserve non-local anchor href values', async () => { const inputFile = join(outputDirectory, 'input.html'); const outputFile = join(outputDirectory, 'output.html'); const inputHtml = ` External link Email link Fragment link `; await writeFile(inputFile, inputHtml, 'utf8'); await htmlpack(inputFile, outputFile); const outputContent = await readFile(outputFile, 'utf8'); expect(outputContent).toContain('External link'); expect(outputContent).toContain('Email link'); expect(outputContent).toContain('Fragment link'); }); });