65 lines
2.1 KiB
TypeScript
65 lines
2.1 KiB
TypeScript
import assert from 'node:assert/strict';
|
|
import test from 'node:test';
|
|
|
|
const nextConfig = require('../../next.config.js');
|
|
|
|
test('next dev ignores test compiler output to avoid route refresh interruptions', () => {
|
|
assert.equal(typeof nextConfig.webpack, 'function');
|
|
|
|
const config = nextConfig.webpack({ watchOptions: { ignored: ['**/node_modules/**'] } }, { dev: true });
|
|
const ignored = config.watchOptions?.ignored;
|
|
const ignoredList = Array.isArray(ignored) ? ignored : [ignored];
|
|
|
|
assert.ok(ignoredList.includes('**/.tmp-test/**'));
|
|
});
|
|
|
|
test('next dev keeps watch ignored entries compatible with webpack schema', () => {
|
|
const config = nextConfig.webpack({ watchOptions: { ignored: [/node_modules/] } }, { dev: true });
|
|
const ignored = config.watchOptions?.ignored;
|
|
const ignoredList = Array.isArray(ignored) ? ignored : [ignored];
|
|
|
|
assert.deepEqual(ignoredList, ['**/.tmp-test/**']);
|
|
});
|
|
|
|
test('next config proxies API requests when the web container is exposed directly', async () => {
|
|
const previousTarget = process.env.NEXT_API_PROXY_TARGET;
|
|
process.env.NEXT_API_PROXY_TARGET = 'http://server:3001';
|
|
|
|
try {
|
|
const rewrites = await nextConfig.rewrites();
|
|
assert.deepEqual(rewrites, [
|
|
{
|
|
source: '/api/v1/:path*',
|
|
destination: 'http://server:3001/api/v1/:path*',
|
|
},
|
|
]);
|
|
} finally {
|
|
if (previousTarget === undefined) {
|
|
delete process.env.NEXT_API_PROXY_TARGET;
|
|
} else {
|
|
process.env.NEXT_API_PROXY_TARGET = previousTarget;
|
|
}
|
|
}
|
|
});
|
|
|
|
test('next config accepts API proxy targets that already include the API prefix', async () => {
|
|
const previousTarget = process.env.NEXT_API_PROXY_TARGET;
|
|
process.env.NEXT_API_PROXY_TARGET = 'http://server:3001/api/v1/';
|
|
|
|
try {
|
|
const rewrites = await nextConfig.rewrites();
|
|
assert.deepEqual(rewrites, [
|
|
{
|
|
source: '/api/v1/:path*',
|
|
destination: 'http://server:3001/api/v1/:path*',
|
|
},
|
|
]);
|
|
} finally {
|
|
if (previousTarget === undefined) {
|
|
delete process.env.NEXT_API_PROXY_TARGET;
|
|
} else {
|
|
process.env.NEXT_API_PROXY_TARGET = previousTarget;
|
|
}
|
|
}
|
|
});
|