excalibur
Version:
Excalibur.js is a simple JavaScript game engine with TypeScript bindings for making 2D games in HTML5 Canvas. Our mission is to make web game development as simple as possible.
42 lines (38 loc) • 1.58 kB
text/typescript
/// <reference types="@vitest/browser/providers/playwright" />
import * as path from 'path';
import type { ViteUserConfig } from 'vitest/config';
import { defineConfig, mergeConfig } from 'vitest/config';
import commonConfig from './vite.config.common';
import { EngineInstanceReporter } from './src/spec/__util__/reporters/engine-instance';
import { MemoryReporter } from './src/spec/__util__/reporters/memory';
export default defineConfig(
mergeConfig(commonConfig, {
// our image urls have always been relative from root in tests. would be nice to
// have a better place of where served files go for tests and then we just use /images/xyz.png
publicDir: __dirname,
resolve: {
alias: {
'@excalibur': path.resolve(__dirname, './src/engine/')
}
},
test: {
api: { host: '0.0.0.0' },
silent: 'passed-only',
reporters: [['default', { summary: false }], new EngineInstanceReporter(), new MemoryReporter()],
// enable with --coverage param
coverage: {
include: ['src/engine/**/*.ts'],
provider: 'istanbul',
reporter: [['html'], ['lcov', { projectRoot: __dirname }], ['text-summary']],
reportsDirectory: path.join(__dirname, 'coverage')
},
projects: [path.resolve(__dirname, './src/spec/vitest.config.unit.ts'), path.resolve(__dirname, './src/spec/vitest.config.visual.ts')]
}
} satisfies ViteUserConfig)
);
declare module 'vitest' {
export interface ProvidedContext {
browser: 'chromium' | 'firefox' | 'webkit';
platform: NodeJS.Platform;
}
}