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";
|
||||
|
||||
// Todo: OCP by creating distinct injectables for platforms.
|
||||
export const allPlatforms = ["win32", "darwin", "linux"] as const;
|
||||
|
||||
const platformInjectable = getInjectable({
|
||||
id: "platform",
|
||||
instantiate: () => process.platform,
|
||||
instantiate: () => process.platform as typeof allPlatforms[number],
|
||||
causesSideEffects: true,
|
||||
});
|
||||
|
||||
|
||||
@ -1,46 +1,6 @@
|
||||
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
||||
|
||||
exports[`application-menu, given environment 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 environment is 'mac' 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 -> 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 [
|
||||
"root",
|
||||
"root -> file",
|
||||
|
||||
@ -7,11 +7,9 @@ import { getApplicationBuilder } from "../../renderer/components/test-utils/get-
|
||||
import populateApplicationMenuInjectable from "./main/populate-application-menu.injectable";
|
||||
import { advanceFakeTime, useFakeTime } from "../../common/test-utils/use-fake-time";
|
||||
import { getCompositePaths } from "../../common/utils/composite/get-composite-paths/get-composite-paths";
|
||||
import isMacInjectable from "../../common/vars/is-mac.injectable";
|
||||
import isWindowsInjectable from "../../common/vars/is-windows.injectable";
|
||||
import isLinuxInjectable from "../../common/vars/is-linux.injectable";
|
||||
import platformInjectable, { allPlatforms } from "../../common/vars/platform.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 populateApplicationMenuMock: jest.Mock;
|
||||
|
||||
@ -23,25 +21,7 @@ describe.each(["win", "mac", "linux"])("application-menu, given environment is '
|
||||
builder = getApplicationBuilder();
|
||||
|
||||
builder.beforeApplicationStart((mainDi) => {
|
||||
switch (environment) {
|
||||
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(platformInjectable, () => platform);
|
||||
|
||||
mainDi.override(
|
||||
populateApplicationMenuInjectable,
|
||||
|
||||
Loading…
Reference in New Issue
Block a user