Configure Vitest for unit and browser tests (use @puppeteer/browsers and webdriverio)

This commit is contained in:
Hugo Alliaume
2025-08-16 19:17:43 +02:00
parent b6a0d7026c
commit bed20dc9dc
4 changed files with 15 additions and 33 deletions

View File

@@ -19,7 +19,8 @@
"scripts": {
"build": "tsx ../../../../../../bin/build_package.ts .",
"watch": "tsx ../../../../../../bin/build_package.ts . --watch",
"test": "../../../../../../bin/test_package.sh .",
"test": "pnpm run test:browser",
"test:browser": "../../../../../../bin/test_package.sh . --browser",
"check": "biome check",
"ci": "biome ci"
},

View File

@@ -10,8 +10,8 @@
import { Application, Controller } from '@hotwired/stimulus';
import { getByTestId, waitFor } from '@testing-library/dom';
import { afterEach, beforeEach, describe, expect, it } from 'vitest';
import { clearDOM, mountDOM } from '../../../../../../../test/stimulus-helpers';
import LeafletController from '../src/map_controller';
import { clearDOM, mountDOM } from '../../../../../../../../test/stimulus-helpers';
import LeafletController from '../../src/map_controller';
// Controller used to check the actual controller was properly booted
class CheckController extends Controller {

View File

@@ -0,0 +1,11 @@
import { mergeConfig } from 'vitest/config';
import configShared from '../../../../../../vitest.config.browser.mjs';
export default mergeConfig(configShared, {
resolve: {
alias: {
'@symfony/ux-map': __dirname + '/../../../../assets/src/abstract_map_controller.ts',
'leaflet/dist/leaflet.min.css': 'leaflet/dist/leaflet.css',
},
},
});

View File

@@ -1,30 +0,0 @@
import { defineConfig, mergeConfig } from 'vitest/config';
import configShared from '../../../../../../vitest.config.mjs'
export default mergeConfig(
configShared,
defineConfig({
resolve: {
alias: {
'@symfony/ux-map': __dirname + '/../../../../assets/src/abstract_map_controller.ts',
'leaflet/dist/leaflet.min.css': 'leaflet/dist/leaflet.css',
},
},
define: {
// Prevent the following error:
// ReferenceError: global is not defined
// ../../../../../../node_modules/pretty-format/build/plugins/AsymmetricMatcher.js ../../../../../../../../../../node_modules/.vite/deps/@testing-library_dom.js:139:19
// ../../../../../../node_modules/pretty-format/build/index.js ../../../../../../../../../../node_modules/.vite/deps/@testing-library_dom.js:805:7
// ../../../../../../../../../../node_modules/.vite/deps/@testing-library_dom.js:13445:36
global: {}
},
test: {
browser: {
enabled: true,
provider: 'playwright', // or 'webdriverio'
instances: [{ browser: 'chromium' }],
headless: true,
},
},
})
);