mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
Simplify overriding of platform in a unit test
Also make typing of platforms more strict, and remove some magic strings. Also add a TODO for further OCP-ification. Co-authored-by: Janne Savolainen <janne.savolainen@live.fi> Signed-off-by: Iku-turso <mikko.aspiala@gmail.com>
This commit is contained in:
parent
155f4dfeb3
commit
b93bea359b
@ -4,9 +4,12 @@
|
|||||||
*/
|
*/
|
||||||
import { getInjectable } from "@ogre-tools/injectable";
|
import { getInjectable } from "@ogre-tools/injectable";
|
||||||
|
|
||||||
|
// Todo: OCP by creating distinct injectables for platforms.
|
||||||
|
export const allPlatforms = ["win32", "darwin", "linux"] as const;
|
||||||
|
|
||||||
const platformInjectable = getInjectable({
|
const platformInjectable = getInjectable({
|
||||||
id: "platform",
|
id: "platform",
|
||||||
instantiate: () => process.platform,
|
instantiate: () => process.platform as typeof allPlatforms[number],
|
||||||
causesSideEffects: true,
|
causesSideEffects: true,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@ -1,46 +1,6 @@
|
|||||||
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
||||||
|
|
||||||
exports[`application-menu, given environment is 'linux' given enough time passes populates application menu 1`] = `
|
exports[`application-menu, given platform is 'darwin' given enough time passes populates application menu 1`] = `
|
||||||
Array [
|
|
||||||
"root",
|
|
||||||
"root -> file",
|
|
||||||
"root -> file -> add-cluster",
|
|
||||||
"root -> file -> navigate-to-preferences",
|
|
||||||
"root -> file -> navigate-to-extensions",
|
|
||||||
"root -> file -> quit",
|
|
||||||
"root -> edit",
|
|
||||||
"root -> edit -> undo",
|
|
||||||
"root -> edit -> redo",
|
|
||||||
"root -> edit -> separator-1-in-edit",
|
|
||||||
"root -> edit -> cut",
|
|
||||||
"root -> edit -> copy",
|
|
||||||
"root -> edit -> paste",
|
|
||||||
"root -> edit -> delete",
|
|
||||||
"root -> edit -> separator-2-in-edit",
|
|
||||||
"root -> edit -> selectAll",
|
|
||||||
"root -> view",
|
|
||||||
"root -> view -> navigate-to-catalog",
|
|
||||||
"root -> view -> open-command-palette",
|
|
||||||
"root -> view -> separator-1-for-view",
|
|
||||||
"root -> view -> go-back",
|
|
||||||
"root -> view -> go-forward",
|
|
||||||
"root -> view -> reload",
|
|
||||||
"root -> view -> toggle-dev-tools",
|
|
||||||
"root -> view -> separator-2-for-view",
|
|
||||||
"root -> view -> reset-zoom",
|
|
||||||
"root -> view -> zoom-in",
|
|
||||||
"root -> view -> zoom-out",
|
|
||||||
"root -> view -> separator-3-for-view",
|
|
||||||
"root -> view -> toggle-full-screen",
|
|
||||||
"root -> help",
|
|
||||||
"root -> help -> navigate-to-welcome",
|
|
||||||
"root -> help -> open-documentation",
|
|
||||||
"root -> help -> open-support",
|
|
||||||
"root -> help -> about",
|
|
||||||
]
|
|
||||||
`;
|
|
||||||
|
|
||||||
exports[`application-menu, given environment is 'mac' given enough time passes populates application menu 1`] = `
|
|
||||||
Array [
|
Array [
|
||||||
"root",
|
"root",
|
||||||
"root -> mac",
|
"root -> mac",
|
||||||
@ -91,7 +51,47 @@ Array [
|
|||||||
]
|
]
|
||||||
`;
|
`;
|
||||||
|
|
||||||
exports[`application-menu, given environment is 'win' given enough time passes populates application menu 1`] = `
|
exports[`application-menu, given platform is 'linux' given enough time passes populates application menu 1`] = `
|
||||||
|
Array [
|
||||||
|
"root",
|
||||||
|
"root -> file",
|
||||||
|
"root -> file -> add-cluster",
|
||||||
|
"root -> file -> navigate-to-preferences",
|
||||||
|
"root -> file -> navigate-to-extensions",
|
||||||
|
"root -> file -> quit",
|
||||||
|
"root -> edit",
|
||||||
|
"root -> edit -> undo",
|
||||||
|
"root -> edit -> redo",
|
||||||
|
"root -> edit -> separator-1-in-edit",
|
||||||
|
"root -> edit -> cut",
|
||||||
|
"root -> edit -> copy",
|
||||||
|
"root -> edit -> paste",
|
||||||
|
"root -> edit -> delete",
|
||||||
|
"root -> edit -> separator-2-in-edit",
|
||||||
|
"root -> edit -> selectAll",
|
||||||
|
"root -> view",
|
||||||
|
"root -> view -> navigate-to-catalog",
|
||||||
|
"root -> view -> open-command-palette",
|
||||||
|
"root -> view -> separator-1-for-view",
|
||||||
|
"root -> view -> go-back",
|
||||||
|
"root -> view -> go-forward",
|
||||||
|
"root -> view -> reload",
|
||||||
|
"root -> view -> toggle-dev-tools",
|
||||||
|
"root -> view -> separator-2-for-view",
|
||||||
|
"root -> view -> reset-zoom",
|
||||||
|
"root -> view -> zoom-in",
|
||||||
|
"root -> view -> zoom-out",
|
||||||
|
"root -> view -> separator-3-for-view",
|
||||||
|
"root -> view -> toggle-full-screen",
|
||||||
|
"root -> help",
|
||||||
|
"root -> help -> navigate-to-welcome",
|
||||||
|
"root -> help -> open-documentation",
|
||||||
|
"root -> help -> open-support",
|
||||||
|
"root -> help -> about",
|
||||||
|
]
|
||||||
|
`;
|
||||||
|
|
||||||
|
exports[`application-menu, given platform is 'win32' given enough time passes populates application menu 1`] = `
|
||||||
Array [
|
Array [
|
||||||
"root",
|
"root",
|
||||||
"root -> file",
|
"root -> file",
|
||||||
|
|||||||
@ -7,11 +7,9 @@ import { getApplicationBuilder } from "../../renderer/components/test-utils/get-
|
|||||||
import populateApplicationMenuInjectable from "./main/populate-application-menu.injectable";
|
import populateApplicationMenuInjectable from "./main/populate-application-menu.injectable";
|
||||||
import { advanceFakeTime, useFakeTime } from "../../common/test-utils/use-fake-time";
|
import { advanceFakeTime, useFakeTime } from "../../common/test-utils/use-fake-time";
|
||||||
import { getCompositePaths } from "../../common/utils/composite/get-composite-paths/get-composite-paths";
|
import { getCompositePaths } from "../../common/utils/composite/get-composite-paths/get-composite-paths";
|
||||||
import isMacInjectable from "../../common/vars/is-mac.injectable";
|
import platformInjectable, { allPlatforms } from "../../common/vars/platform.injectable";
|
||||||
import isWindowsInjectable from "../../common/vars/is-windows.injectable";
|
|
||||||
import isLinuxInjectable from "../../common/vars/is-linux.injectable";
|
|
||||||
|
|
||||||
describe.each(["win", "mac", "linux"])("application-menu, given environment is '%s'", (environment) => {
|
describe.each(allPlatforms)("application-menu, given platform is '%s'", (platform) => {
|
||||||
let builder: ApplicationBuilder;
|
let builder: ApplicationBuilder;
|
||||||
let populateApplicationMenuMock: jest.Mock;
|
let populateApplicationMenuMock: jest.Mock;
|
||||||
|
|
||||||
@ -23,25 +21,7 @@ describe.each(["win", "mac", "linux"])("application-menu, given environment is '
|
|||||||
builder = getApplicationBuilder();
|
builder = getApplicationBuilder();
|
||||||
|
|
||||||
builder.beforeApplicationStart((mainDi) => {
|
builder.beforeApplicationStart((mainDi) => {
|
||||||
switch (environment) {
|
mainDi.override(platformInjectable, () => platform);
|
||||||
case "mac":
|
|
||||||
mainDi.override(isMacInjectable, () => true);
|
|
||||||
mainDi.override(isWindowsInjectable, () => false);
|
|
||||||
mainDi.override(isLinuxInjectable, () => false);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case "win":
|
|
||||||
mainDi.override(isMacInjectable, () => false);
|
|
||||||
mainDi.override(isWindowsInjectable, () => true);
|
|
||||||
mainDi.override(isLinuxInjectable, () => false);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case "linux":
|
|
||||||
mainDi.override(isMacInjectable, () => false);
|
|
||||||
mainDi.override(isWindowsInjectable, () => false);
|
|
||||||
mainDi.override(isLinuxInjectable, () => true);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
mainDi.override(
|
mainDi.override(
|
||||||
populateApplicationMenuInjectable,
|
populateApplicationMenuInjectable,
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user