From fcdfec575e9c09cdc8049c537f4b434d14a37484 Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Mon, 8 Aug 2022 14:50:57 +0200 Subject: [PATCH] add separation of msw handlers into browser and e2e contexts, and replace the import.meta statements into the browser file since only the browser can handle esmodules --- .../src/mocks/browser-handlers.ts | 28 +++++++++ .../src/mocks/browser.ts | 2 +- .../src/mocks/domains/install.handlers.ts | 2 +- .../src/mocks/domains/server.handlers.ts | 59 ++++++++++++------- .../mocks/{handlers.ts => e2e-handlers.ts} | 5 +- src/Umbraco.Web.UI.Client/test.ts | 2 +- 6 files changed, 73 insertions(+), 25 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/src/mocks/browser-handlers.ts rename src/Umbraco.Web.UI.Client/src/mocks/{handlers.ts => e2e-handlers.ts} (78%) diff --git a/src/Umbraco.Web.UI.Client/src/mocks/browser-handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/browser-handlers.ts new file mode 100644 index 0000000000..d972ec9502 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/mocks/browser-handlers.ts @@ -0,0 +1,28 @@ +import { handlers as contentHandlers } from './domains/content.handlers'; +import { handlers as installHandlers } from './domains/install.handlers'; +import { handlers as manifestsHandlers } from './domains/manifests.handlers'; +import * as serverHandlers from './domains/server.handlers'; +import { handlers as upgradeHandlers } from './domains/upgrade.handlers'; +import { handlers as userHandlers } from './domains/user.handlers'; + +const handlers = [ + serverHandlers.serverVersionHandler, + ...contentHandlers, + ...installHandlers, + ...upgradeHandlers, + ...manifestsHandlers, + ...userHandlers, +]; + +switch (import.meta.env.VITE_UMBRACO_INSTALL_STATUS) { + case 'must-install': + handlers.push(serverHandlers.serverMustInstallHandler); + break; + case 'must-upgrade': + handlers.push(serverHandlers.serverMustUpgradeHandler); + break; + default: + handlers.push(serverHandlers.serverRunningHandler); +} + +export { handlers }; diff --git a/src/Umbraco.Web.UI.Client/src/mocks/browser.ts b/src/Umbraco.Web.UI.Client/src/mocks/browser.ts index bc470aaff6..a95b6dea67 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/browser.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/browser.ts @@ -1,6 +1,6 @@ import { MockedRequest, setupWorker } from 'msw'; -import { handlers } from './handlers'; +import { handlers } from './browser-handlers'; const worker = setupWorker(...handlers); diff --git a/src/Umbraco.Web.UI.Client/src/mocks/domains/install.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/domains/install.handlers.ts index e667221811..a6684c7021 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/domains/install.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/domains/install.handlers.ts @@ -35,7 +35,7 @@ export const handlers = [ displayName: 'SQLite', defaultDatabaseName: 'Umbraco', providerName: 'Microsoft.Data.SQLite', - isConfigured: import.meta.env.VITE_UMBRACO_INSTALL_PRECONFIGURED === 'true', + isConfigured: false, requiresServer: false, serverPlaceholder: null, requiresCredentials: false, diff --git a/src/Umbraco.Web.UI.Client/src/mocks/domains/server.handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/domains/server.handlers.ts index cf65b77bef..5666b48de8 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/domains/server.handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/domains/server.handlers.ts @@ -3,23 +3,42 @@ import { rest } from 'msw'; import umbracoPath from '../../core/helpers/umbraco-path'; import { StatusResponse, VersionResponse } from '../../core/models'; -export const handlers = [ - rest.get(umbracoPath('/server/status'), (_req, res, ctx) => { - return res( - // Respond with a 200 status code - ctx.status(200), - ctx.json({ - serverStatus: import.meta.env.VITE_UMBRACO_INSTALL_STATUS, - }) - ); - }), - rest.get(umbracoPath('/server/version'), (_req, res, ctx) => { - return res( - // Respond with a 200 status code - ctx.status(200), - ctx.json({ - version: '13.0.0', - }) - ); - }), -]; +export const serverRunningHandler = rest.get(umbracoPath('/server/status'), (_req, res, ctx) => { + return res( + // Respond with a 200 status code + ctx.status(200), + ctx.json({ + serverStatus: 'running', + }) + ); +}); + +export const serverMustInstallHandler = rest.get(umbracoPath('/server/status'), (_req, res, ctx) => { + return res( + // Respond with a 200 status code + ctx.status(200), + ctx.json({ + serverStatus: 'must-install', + }) + ); +}); + +export const serverMustUpgradeHandler = rest.get(umbracoPath('/server/status'), (_req, res, ctx) => { + return res( + // Respond with a 200 status code + ctx.status(200), + ctx.json({ + serverStatus: 'must-upgrade', + }) + ); +}); + +export const serverVersionHandler = rest.get(umbracoPath('/server/version'), (_req, res, ctx) => { + return res( + // Respond with a 200 status code + ctx.status(200), + ctx.json({ + version: '13.0.0', + }) + ); +}); diff --git a/src/Umbraco.Web.UI.Client/src/mocks/handlers.ts b/src/Umbraco.Web.UI.Client/src/mocks/e2e-handlers.ts similarity index 78% rename from src/Umbraco.Web.UI.Client/src/mocks/handlers.ts rename to src/Umbraco.Web.UI.Client/src/mocks/e2e-handlers.ts index bc24c5da4c..7ad5e7eccf 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/handlers.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/e2e-handlers.ts @@ -1,12 +1,13 @@ import { handlers as contentHandlers } from './domains/content.handlers'; import { handlers as installHandlers } from './domains/install.handlers'; import { handlers as manifestsHandlers } from './domains/manifests.handlers'; -import { handlers as serverHandlers } from './domains/server.handlers'; +import * as serverHandlers from './domains/server.handlers'; import { handlers as upgradeHandlers } from './domains/upgrade.handlers'; import { handlers as userHandlers } from './domains/user.handlers'; export const handlers = [ - ...serverHandlers, + serverHandlers.serverRunningHandler, + serverHandlers.serverVersionHandler, ...contentHandlers, ...installHandlers, ...upgradeHandlers, diff --git a/src/Umbraco.Web.UI.Client/test.ts b/src/Umbraco.Web.UI.Client/test.ts index 3de29447f2..9a0a529569 100644 --- a/src/Umbraco.Web.UI.Client/test.ts +++ b/src/Umbraco.Web.UI.Client/test.ts @@ -1,7 +1,7 @@ import { expect, test as base } from '@playwright/test'; import { createWorkerFixture } from 'playwright-msw'; -import { handlers } from './src/mocks/handlers'; +import { handlers } from './src/mocks/e2e-handlers'; import type { MockServiceWorker } from 'playwright-msw'; const test = base.extend<{