🐛(nginx) fix 404 when accessing a doc
We improve the nginx way to access to a specific doc. We stop to wait for a initial attempt that give a 404. If we see a UUID in the url we will redirect to the doc/[id] page. Next will then manage the 404.
This commit is contained in:
@@ -24,6 +24,10 @@ and this project adheres to
|
|||||||
|
|
||||||
⚡️(frontend) reduce unblocking time for config #867
|
⚡️(frontend) reduce unblocking time for config #867
|
||||||
|
|
||||||
|
## Fixed
|
||||||
|
|
||||||
|
- 🐛(nginx) fix 404 when accessing a doc #866
|
||||||
|
|
||||||
## [3.1.0] - 2025-04-07
|
## [3.1.0] - 2025-04-07
|
||||||
|
|
||||||
## Added
|
## Added
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
import crypto from 'crypto';
|
||||||
|
|
||||||
import { expect, test } from '@playwright/test';
|
import { expect, test } from '@playwright/test';
|
||||||
|
|
||||||
import {
|
import {
|
||||||
@@ -101,8 +103,9 @@ test.describe('Doc Routing: Not loggued', () => {
|
|||||||
page,
|
page,
|
||||||
browserName,
|
browserName,
|
||||||
}) => {
|
}) => {
|
||||||
await mockedDocument(page, { link_reach: 'public' });
|
const uuid = crypto.randomUUID();
|
||||||
await page.goto('/docs/mocked-document-id/');
|
await mockedDocument(page, { link_reach: 'public', id: uuid });
|
||||||
|
await page.goto(`/docs/${uuid}/`);
|
||||||
await expect(page.locator('h2').getByText('Mocked document')).toBeVisible();
|
await expect(page.locator('h2').getByText('Mocked document')).toBeVisible();
|
||||||
await page.getByRole('button', { name: 'Login' }).click();
|
await page.getByRole('button', { name: 'Login' }).click();
|
||||||
await keyCloakSignIn(page, browserName, false);
|
await keyCloakSignIn(page, browserName, false);
|
||||||
|
|||||||
@@ -54,18 +54,11 @@ test.describe.serial('Language', () => {
|
|||||||
}) => {
|
}) => {
|
||||||
// Helper function to intercept and assert 404 response
|
// Helper function to intercept and assert 404 response
|
||||||
const check404Response = async (expectedDetail: string) => {
|
const check404Response = async (expectedDetail: string) => {
|
||||||
const expectedBackendResponse = page.waitForResponse(
|
const interceptedBackendResponse = await page.request.get(
|
||||||
(response) =>
|
'http://localhost:8071/api/v1.0/documents/non-existent-doc-uuid/',
|
||||||
response.url().includes('/api') &&
|
|
||||||
response.url().includes('non-existent-doc-uuid') &&
|
|
||||||
response.status() === 404,
|
|
||||||
);
|
);
|
||||||
|
|
||||||
// Trigger the specific 404 XHR response by navigating to a non-existent document
|
|
||||||
await page.goto('/docs/non-existent-doc-uuid');
|
|
||||||
|
|
||||||
// Assert that the intercepted error message is in the expected language
|
// Assert that the intercepted error message is in the expected language
|
||||||
const interceptedBackendResponse = await expectedBackendResponse;
|
|
||||||
expect(await interceptedBackendResponse.json()).toStrictEqual({
|
expect(await interceptedBackendResponse.json()).toStrictEqual({
|
||||||
detail: expectedDetail,
|
detail: expectedDetail,
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -9,8 +9,8 @@ server {
|
|||||||
try_files $uri index.html $uri/ =404;
|
try_files $uri index.html $uri/ =404;
|
||||||
}
|
}
|
||||||
|
|
||||||
location /docs/ {
|
location ~ "^/docs/[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}/?$" {
|
||||||
error_page 404 /docs/[id]/;
|
try_files $uri /docs/[id]/index.html;
|
||||||
}
|
}
|
||||||
|
|
||||||
error_page 404 /404.html;
|
error_page 404 /404.html;
|
||||||
|
|||||||
Reference in New Issue
Block a user