import {join, dirname} from "node:path"; import {test, expect, jest} from "@jest/globals"; // Rollup * plugins import { rollup } from "rollup"; import urlPlugin from "@rollup/plugin-url"; import nodeResolve from "@rollup/plugin-node-resolve"; import babelPlugin from "@rollup/plugin-babel"; import commonJsPlugin from "@rollup/plugin-commonjs"; import typescriptPlugin from "@rollup/plugin-typescript"; import replacePlugin from "@rollup/plugin-replace"; import html from "../../src/index.ts"; import {runBrowserTest} from "../util/browser-test.ts"; import {fileURLToPath} from "node:url"; import handlebars from "handlebars"; import {serializer} from "../util/index.ts"; // import {debugPrintOutput, getCode, runBrowserTest} from "../util/index.ts"; const __dirname = dirname(fileURLToPath(import.meta.url)); process.chdir(join(__dirname, 'fixtures')); const defaultAssetInclude = [ '**/*.(png|jpg|jpeg|gif|ico|svg)',// images, svg '**/*.(woff|woff2|eot|ttf|otf)',// fonts '**/*.(webm|mp4)',// video ]; jest.setTimeout(30*1000);// Bundling react + typescript is getting heavy test('web-bundle', async () => { expect.addSnapshotSerializer(serializer); const out = await runBrowserTest({ input: 'index.hbs', treeshake: 'smallest', plugins: [ html({ include: [ '**/*.(html|hbs)',// html or handlebars ], transform(src) { return handlebars.compile(src)({ head: `