🐛(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:
Anthony LC
2025-04-10 22:54:59 +02:00
parent 96f6aeea60
commit b58c991c81
4 changed files with 13 additions and 13 deletions

View File

@@ -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

View File

@@ -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);

View File

@@ -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,
}); });

View File

@@ -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;