prerender-conflict.test.js — astro Source File
Architecture documentation for prerender-conflict.test.js, a javascript file in the astro codebase. 5 imports, 0 dependents.
Entity Profile
Dependency Diagram
graph LR ea39eb22_df5c_8e9e_8574_5b4153079608["prerender-conflict.test.js"] f5b154b4_7bf2_7c8f_2105_5c84d2420bd1["../../dist/core/logger/core.js"] ea39eb22_df5c_8e9e_8574_5b4153079608 --> f5b154b4_7bf2_7c8f_2105_5c84d2420bd1 0a624eac_945e_c9e8_c9de_3feb9de2dd15["test-utils.js"] ea39eb22_df5c_8e9e_8574_5b4153079608 --> 0a624eac_945e_c9e8_c9de_3feb9de2dd15 dd4f09ce_3fd7_8295_f616_8876cda4555c["loadFixture"] ea39eb22_df5c_8e9e_8574_5b4153079608 --> dd4f09ce_3fd7_8295_f616_8876cda4555c db323e8c_04ef_9777_0487_224de5819a30["node:assert"] ea39eb22_df5c_8e9e_8574_5b4153079608 --> db323e8c_04ef_9777_0487_224de5819a30 6b0635f9_51ea_77aa_767b_7857878e98a6["node:test"] ea39eb22_df5c_8e9e_8574_5b4153079608 --> 6b0635f9_51ea_77aa_767b_7857878e98a6 style ea39eb22_df5c_8e9e_8574_5b4153079608 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
import { strict as assert } from 'node:assert';
import { before, describe, it } from 'node:test';
import { Logger } from '../dist/core/logger/core.js';
import { loadFixture } from './test-utils.js';
/**
* Dynamic vs dynamic duplication should warn by default and succeed.
* When prerenderConflictBehavior is set to 'error', it should fail.
* Static vs dynamic should also warn/fail similarly.
*/
describe('Prerender conflicts', () => {
describe('dynamic vs dynamic', () => {
let fixture;
before(async () => {
fixture = await loadFixture({ root: './fixtures/prerender-conflict-dynamic-dynamic/' });
});
it('warns by default and succeeds', async () => {
const logs = [];
await fixture.build({
logger: new Logger({
level: 'warn',
dest: {
write(chunk) {
logs.push(chunk);
},
},
}),
});
const relevantLogs = logs
.filter((log) => log.level === 'warn' && log.label === 'build')
.map((log) => log.message);
assert.deepEqual(
relevantLogs,
[
'Could not render `/c` from route `/[foo]` as it conflicts with higher priority route `/[bar]`.',
],
'Should warn about prerender conflict between two dynamic routes.',
);
});
it('fails when prerenderConflictBehavior is set to error', async () => {
let err;
try {
await fixture.build({ prerenderConflictBehavior: 'error' });
} catch (e) {
err = e;
}
assert.ok(err, 'Build should fail when prerenderConflictBehavior is set to error');
assert.equal(
String(err),
'PrerenderRouteConflict: Could not render `/c` from route `/[foo]` as it conflicts with higher priority route `/[bar]`.',
);
});
});
describe('static vs dynamic', () => {
let fixture;
before(async () => {
fixture = await loadFixture({ root: './fixtures/prerender-conflict-static-dynamic/' });
});
it('warns by default and succeeds', async () => {
const logs = [];
await fixture.build({
logger: new Logger({
level: 'warn',
dest: {
write(chunk) {
logs.push(chunk);
},
},
}),
});
const relevantLogs = logs
.filter((log) => log.level === 'warn' && log.label === 'build')
.map((log) => log.message);
assert.deepEqual(
relevantLogs,
[
'Could not render `/c` from route `/[foo]` as it conflicts with higher priority route `/c`.',
],
'Should warn about prerender conflict between two dynamic routes.',
);
});
it('fails when prerenderConflictBehavior is set to error', async () => {
let err;
try {
await fixture.build({ prerenderConflictBehavior: 'error' });
} catch (e) {
err = e;
}
assert.ok(err, 'Build should fail when prerenderConflictBehavior is set to error');
assert.equal(
String(err),
'PrerenderRouteConflict: Could not render `/c` from route `/[foo]` as it conflicts with higher priority route `/c`.',
);
});
});
});
Domain
Dependencies
- ../../dist/core/logger/core.js
- loadFixture
- node:assert
- node:test
- test-utils.js
Source
Frequently Asked Questions
What does prerender-conflict.test.js do?
prerender-conflict.test.js is a source file in the astro codebase, written in javascript. It belongs to the IntegrationAdapters domain.
What does prerender-conflict.test.js depend on?
prerender-conflict.test.js imports 5 module(s): ../../dist/core/logger/core.js, loadFixture, node:assert, node:test, test-utils.js.
Where is prerender-conflict.test.js in the architecture?
prerender-conflict.test.js is located at packages/astro/test/prerender-conflict.test.js (domain: IntegrationAdapters, directory: packages/astro/test).
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free