Eu tenho o seguinte teste de configuração:
import { describe, it } from "vitest";
import { init, initServer } from "../src";
import dotenv from "dotenv";
dotenv.config();
describe("#setup", () => {
it("should initialize the server", async () => {
await init(await initServer() as string);
});
});
Observe que não é possível usar beforeEach de nenhum outro método before porque ele só pode ser executado uma vez no comando de teste.
No entanto, quando executo, recebo um erro:
[!] RollupError: src/index.ts (22:23): Expected ',', got ':' (Note that you need plugins to import files that are not JavaScript)
src/index.ts (22:23)
20: * @async
21: */
22: const init = async (url: string, password?: string) => {
^
23: const response = await fetch(url);
RollupError: Expected ',', got ':'
Não vejo razão para que isso gere um erro, pois é um TS válido. Aqui está minha configuração do Vite:
import {defineConfig} from "vite";
export default defineConfig({
server: {
watch: {
ignored: ["node_modules", "dist"]
}
},
test: {
globalSetup: "tests/setup.spec.ts"
}
});
Espaço de trabalho do Vitest:
import { defineWorkspace } from "vitest/config";
export default defineWorkspace([
{
extends: "vite.config.ts",
test: {
include: ["tests/setup.spec.ts"],
name: "setup",
environment: "node"
}
}])
Configuração de acúmulo:
import serve from "rollup-plugin-serve";
import typescript from "@rollup/plugin-typescript";
import copy from "rollup-plugin-copy";
export default [
{
input: "src/index.ts",
output: [
{
dir: "dist",
format: "es"
}
],
inlineDynamicImports: true,
presserveModules: true,
plugins: [
serve({contentBase: "dist"}),
typescript(),
copy({targets: [{src: "src/server/init.sh", dest: "dist"}]})
],
external: ["express"]
}
];
a ordem dos plug-ins no rollup é importante, então você deve começar pelo
typescript()
plug-in e depois veicular usandoserve()
o plug-inNão sei qual arquivo você está copiando,
copy
mas se for importante para o servidor ou para a compilação, não esqueça que a ordem é importante