test: fix site test infinite loop in Jest --watch mode + simplify test (#11312)

This commit is contained in:
Sébastien Lorber 2025-07-07 16:50:01 +02:00 committed by GitHub
parent 1808945c1f
commit 3733dfee52
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 17 additions and 20 deletions

7
jest.config.mjs vendored
View file

@ -32,15 +32,16 @@ const ignorePatterns = [
export default {
rootDir: fileURLToPath(new URL('.', import.meta.url)),
verbose: true,
// Default 5s timeout often fails on Windows :s,
// see https://github.com/facebook/docusaurus/pull/8259
testTimeout: 15000,
setupFiles: ['./jest/setup.js'],
testEnvironmentOptions: {
url: 'https://docusaurus.io/',
},
testEnvironment: 'node',
testPathIgnorePatterns: ignorePatterns,
// Default 5s timeout often fails on Windows :s,
// see https://github.com/facebook/docusaurus/pull/8259
testTimeout: 15000,
watchPathIgnorePatterns: ['/\\.docusaurus'],
coveragePathIgnorePatterns: [
...ignorePatterns,
// We also ignore all package entry points

View file

@ -1,6 +1,6 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`load loads props for site with custom i18n path 1`] = `
exports[`load loads props for site 1`] = `
{
"baseUrl": "/",
"codeTranslations": {},

View file

@ -6,26 +6,22 @@
*/
import path from 'path';
import {mergeWithCustomize} from 'webpack-merge';
import {loadSetup} from './testUtils';
import type {Props} from '@docusaurus/types';
import type {DeepPartial} from 'utility-types';
describe('load', () => {
it('loads props for site with custom i18n path', async () => {
it('loads props for site', async () => {
const site = await loadSetup('custom-i18n-site');
expect(site.props).toMatchSnapshot();
const site2 = await loadSetup('custom-i18n-site', {locale: 'zh-Hans'});
expect(site2.props).toEqual(
mergeWithCustomize<DeepPartial<Props>>({
customizeArray(a, b, key) {
return ['routesPaths', 'plugins'].includes(key) ? b : undefined;
},
})(site.props, {
});
it('loads props for site - custom i18n path', async () => {
const site = await loadSetup('custom-i18n-site', {locale: 'zh-Hans'});
expect(site.props).toEqual(
expect.objectContaining({
baseUrl: '/zh-Hans/',
i18n: {
i18n: expect.objectContaining({
currentLocale: 'zh-Hans',
},
}),
localizationDir: path.join(
__dirname,
'__fixtures__/custom-i18n-site/i18n/zh-Hans-custom',
@ -35,14 +31,14 @@ describe('load', () => {
'__fixtures__/custom-i18n-site/build/zh-Hans',
),
routesPaths: ['/zh-Hans/404.html'],
siteConfig: {
siteConfig: expect.objectContaining({
baseUrl: '/zh-Hans/',
},
}),
siteStorage: {
namespace: '',
type: 'localStorage',
},
plugins: site2.props.plugins,
plugins: site.props.plugins,
}),
);
});