diff --git a/web/frontend/tests/hars/9fd2ff4fc1fb163717539fb04aec420feeb11e5a.html b/web/frontend/tests/hars/9fd2ff4fc1fb163717539fb04aec420feeb11e5a.html new file mode 100644 index 000000000..e2c1c215e --- /dev/null +++ b/web/frontend/tests/hars/9fd2ff4fc1fb163717539fb04aec420feeb11e5a.html @@ -0,0 +1 @@ +Unauthenticated \ No newline at end of file diff --git a/web/frontend/tests/hars/personal_info.har b/web/frontend/tests/hars/personal_info.har new file mode 100644 index 000000000..d381ea761 --- /dev/null +++ b/web/frontend/tests/hars/personal_info.har @@ -0,0 +1,67 @@ +{ + "log": { + "version": "1.2", + "creator": { + "name": "Playwright", + "version": "1.40.1" + }, + "browser": { + "name": "firefox", + "version": "119.0" + }, + "entries": [ + { + "startedDateTime": "2023-12-05T14:25:28.081Z", + "time": 0.06, + "request": { + "method": "GET", + "url": "http://127.0.0.1:3000/api/personal_info", + "httpVersion": "HTTP/1.1", + "cookies": [], + "headers": [ + { "name": "Host", "value": "127.0.0.1:3000" }, + { "name": "User-Agent", "value": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:119.0) Gecko/20100101 Firefox/119.0" }, + { "name": "Accept", "value": "*/*" }, + { "name": "Accept-Language", "value": "en-US" }, + { "name": "Accept-Encoding", "value": "gzip, deflate, br" }, + { "name": "Referer", "value": "http://127.0.0.1:3000/about" }, + { "name": "Connection", "value": "keep-alive" }, + { "name": "Sec-Fetch-Dest", "value": "empty" }, + { "name": "Sec-Fetch-Mode", "value": "cors" }, + { "name": "Sec-Fetch-Site", "value": "same-origin" } + ], + "queryString": [], + "headersSize": -1, + "bodySize": -1 + }, + "response": { + "status": 401, + "statusText": "Unauthorized", + "httpVersion": "HTTP/1.1", + "cookies": [], + "headers": [ + { "name": "x-powered-by", "value": "Express" }, + { "name": "content-type", "value": "text/html; charset=utf-8" }, + { "name": "content-length", "value": "15" }, + { "name": "etag", "value": "W/\"f-n9L/T8H7FjcXU5+wSuxCD+6xHlo\"" }, + { "name": "set-cookie", "value": "connect.sid=s%3AO6aDExYv7Ocwz6IQUJ7l0I3u0XA7OHMg.Hq5%2FbR4nwsJbDjh1kVYuXweeFTmPF9d0Tx8t%2F1T3hOQ; Path=/; Expires=Wed, 06 Dec 2023 14:25:28 GMT; HttpOnly" }, + { "name": "date", "value": "Tue" }, + { "name": "date", "value": "05 Dec 2023 14:25:28 GMT" }, + { "name": "connection", "value": "keep-alive" }, + { "name": "keep-alive", "value": "timeout=5" } + ], + "content": { + "size": -1, + "mimeType": "text/html; charset=utf-8", + "_file": "9fd2ff4fc1fb163717539fb04aec420feeb11e5a.html" + }, + "headersSize": -1, + "bodySize": -1, + "redirectURL": "" + }, + "cache": {}, + "timings": { "send": -1, "wait": -1, "receive": 0.06 } + } + ] + } +} \ No newline at end of file diff --git a/web/frontend/tests/mocks.ts b/web/frontend/tests/mocks.ts index 4108a2583..f0b5dd3cd 100644 --- a/web/frontend/tests/mocks.ts +++ b/web/frontend/tests/mocks.ts @@ -1,7 +1,16 @@ export const SCIPER_ADMIN = '123456'; export const SCIPER_USER = '789012'; -export async function mockPersonalInfo (page: any, admin = false) { +export async function mockPersonalInfo (page: any, authenticated = false, admin = false) { + if (!authenticated) { + await page.routeFromHAR( + './tests/hars/personal_info.har', + { + url: `${process.env.FRONT_END_URL}/api/personal_info`, + update: false, + }); + return; + } await page.routeFromHAR( `./tests/hars/personal_info.${admin ? SCIPER_ADMIN : SCIPER_USER}.har`, { diff --git a/web/frontend/tests/navigation.spec.ts b/web/frontend/tests/navigation.spec.ts index 51c3d830b..905d07547 100644 --- a/web/frontend/tests/navigation.spec.ts +++ b/web/frontend/tests/navigation.spec.ts @@ -7,10 +7,12 @@ import { assertOnlyVisibleToAuthenticated, assertOnlyVisibleToAdmin, } from './shared'; +import { mockPersonalInfo } from './mocks'; initI18n(); test.beforeEach(async ({ page }) => { + await mockPersonalInfo(page); await page.goto(`${process.env.FRONT_END_URL}/about`); }); diff --git a/web/frontend/tests/shared.ts b/web/frontend/tests/shared.ts index 8057f4c4d..5275bcf0e 100644 --- a/web/frontend/tests/shared.ts +++ b/web/frontend/tests/shared.ts @@ -13,13 +13,12 @@ export function initI18n () { } export async function logIn (page: any, admin = false) { - await mockPersonalInfo(page, admin); + await mockPersonalInfo(page, true, admin); await page.reload(); } export async function logOut (page: any) { - await mockLogout(page); - await page.context().request.post(`${process.env.FRONT_END_URL}/api/logout`); + await mockPersonalInfo(page) await page.reload(); }