Merge remote-tracking branch 'origin/master' into make-BaseStore-non-singlton

Signed-off-by: Sebastian Malton <sebastian@malton.name>
This commit is contained in:
Sebastian Malton committed 2022-12-12 15:59:18 -05:00
commit 26b10b8738
20 files changed
+275 -136

No files matched your search

+2 -1
View File
@@ -4,9 +4,10 @@
*/
import type { app as electronApp } from "electron";
export type PathName = Parameters<typeof electronApp["getPath"]>[0];
export type PathName = Parameters<typeof electronApp["getPath"]>[0] | "currentApp";
export const pathNames: PathName[] = [
"currentApp",
"home",
"appData",
"userData",
+3
View File
@@ -19,6 +19,7 @@ describe("app-paths", () => {
builder = getApplicationBuilder();
const defaultAppPathsStub: AppPaths = {
currentApp: "some-current-app",
appData: "some-app-data",
cache: "some-cache",
crashDumps: "some-crash-dumps",
@@ -70,6 +71,7 @@ describe("app-paths", () => {
const actual = windowDi.inject(appPathsInjectable);
expect(actual).toEqual({
currentApp: "some-current-app",
appData: "some-app-data",
cache: "some-cache",
crashDumps: "some-crash-dumps",
@@ -93,6 +95,7 @@ describe("app-paths", () => {
const actual = mainDi.inject(appPathsInjectable);
expect(actual).toEqual({
currentApp: "some-current-app",
appData: "some-app-data",
cache: "some-cache",
crashDumps: "some-crash-dumps",
@@ -0,0 +1,9 @@
/**
* Copyright (c) OpenLens Authors. All rights reserved.
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
import { getGlobalOverride } from "../test-utils/get-global-override";
import staticFilesDirectoryInjectable from "./static-files-directory.injectable";
export default getGlobalOverride(staticFilesDirectoryInjectable, () => "/some-static-directory");
@@ -3,17 +3,17 @@
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
import { getInjectable } from "@ogre-tools/injectable";
import appPathsInjectable from "../app-paths/app-paths.injectable";
import joinPathsInjectable from "../path/join-paths.injectable";
import lensResourcesDirInjectable from "./lens-resources-dir.injectable";
const staticFilesDirectoryInjectable = getInjectable({
id: "static-files-directory",
instantiate: (di) => {
const joinPaths = di.inject(joinPathsInjectable);
const lensResourcesDir = di.inject(lensResourcesDirInjectable);
const currentAppDir = di.inject(appPathsInjectable).currentApp;
return joinPaths(lensResourcesDir, "static");
return joinPaths(currentAppDir, "static");
},
});
@@ -11,7 +11,6 @@ import extensionInstallationStateStoreInjectable from "../extension-installation
import installExtensionInjectable from "../extension-installer/install-extension/install-extension.injectable";
import extensionPackageRootDirectoryInjectable from "../extension-installer/extension-package-root-directory/extension-package-root-directory.injectable";
import installExtensionsInjectable from "../extension-installer/install-extensions/install-extensions.injectable";
import staticFilesDirectoryInjectable from "../../common/vars/static-files-directory.injectable";
import readJsonFileInjectable from "../../common/fs/read-json-file.injectable";
import loggerInjectable from "../../common/logger.injectable";
import pathExistsInjectable from "../../common/fs/path-exists.injectable";
@@ -29,6 +28,7 @@ import getRelativePathInjectable from "../../common/path/get-relative-path.injec
import joinPathsInjectable from "../../common/path/join-paths.injectable";
import removePathInjectable from "../../common/fs/remove.injectable";
import homeDirectoryPathInjectable from "../../common/os/home-directory-path.injectable";
import lensResourcesDirInjectable from "../../common/vars/lens-resources-dir.injectable";
const extensionDiscoveryInjectable = getInjectable({
id: "extension-discovery",
@@ -41,7 +41,7 @@ const extensionDiscoveryInjectable = getInjectable({
installExtension: di.inject(installExtensionInjectable),
installExtensions: di.inject(installExtensionsInjectable),
extensionPackageRootDirectory: di.inject(extensionPackageRootDirectoryInjectable),
staticFilesDirectory: di.inject(staticFilesDirectoryInjectable),
resourcesDirectory: di.inject(lensResourcesDirInjectable),
readJsonFile: di.inject(readJsonFileInjectable),
pathExists: di.inject(pathExistsInjectable),
watch: di.inject(watchInjectable),
@@ -38,7 +38,7 @@ interface Dependencies {
readonly extensionsStore: ExtensionsStore;
readonly extensionInstallationStateStore: ExtensionInstallationStateStore;
readonly extensionPackageRootDirectory: string;
readonly staticFilesDirectory: string;
readonly resourcesDirectory: string;
readonly logger: Logger;
readonly isProduction: boolean;
readonly fileSystemSeparator: string;
@@ -142,7 +142,7 @@ export class ExtensionDiscovery {
}
get inTreeFolderPath(): string {
return this.dependencies.joinPaths(this.dependencies.staticFilesDirectory, "../extensions");
return this.dependencies.joinPaths(this.dependencies.resourcesDirectory, "extensions");
}
get nodeModulesPath(): string {
@@ -79,7 +79,7 @@ describe("installing update", () => {
it("shows normal tray icon", () => {
expect(builder.tray.getIconPath()).toBe(
"/some-static-files-directory/icons/trayIconTemplate.png",
"/some-static-files-directory/build/tray/trayIconTemplate.png",
);
});
@@ -97,7 +97,7 @@ describe("installing update", () => {
it("shows tray icon for checking for updates", () => {
expect(builder.tray.getIconPath()).toBe(
"/some-static-files-directory/icons/trayIconCheckingForUpdatesTemplate.png",
"/some-static-files-directory/build/tray/trayIconCheckingForUpdatesTemplate.png",
);
});
@@ -114,7 +114,7 @@ describe("installing update", () => {
it("shows tray icon for normal", () => {
expect(builder.tray.getIconPath()).toBe(
"/some-static-files-directory/icons/trayIconTemplate.png",
"/some-static-files-directory/build/tray/trayIconTemplate.png",
);
});
@@ -141,7 +141,7 @@ describe("installing update", () => {
it("still shows tray icon for downloading", () => {
expect(builder.tray.getIconPath()).toBe(
"/some-static-files-directory/icons/trayIconCheckingForUpdatesTemplate.png",
"/some-static-files-directory/build/tray/trayIconCheckingForUpdatesTemplate.png",
);
});
@@ -160,7 +160,7 @@ describe("installing update", () => {
it("still shows normal tray icon", () => {
expect(builder.tray.getIconPath()).toBe(
"/some-static-files-directory/icons/trayIconTemplate.png",
"/some-static-files-directory/build/tray/trayIconTemplate.png",
);
});
@@ -180,7 +180,7 @@ describe("installing update", () => {
it("shows tray icon for update being available", () => {
expect(builder.tray.getIconPath()).toBe(
"/some-static-files-directory/icons/trayIconUpdateAvailableTemplate.png",
"/some-static-files-directory/build/tray/trayIconUpdateAvailableTemplate.png",
);
});
@@ -197,7 +197,7 @@ describe("installing update", () => {
it("shows tray icon for checking for updates", () => {
expect(builder.tray.getIconPath()).toBe(
"/some-static-files-directory/icons/trayIconCheckingForUpdatesTemplate.png",
"/some-static-files-directory/build/tray/trayIconCheckingForUpdatesTemplate.png",
);
});
@@ -215,7 +215,7 @@ describe("installing update", () => {
it("shows tray icon for update being available", () => {
expect(builder.tray.getIconPath()).toBe(
"/some-static-files-directory/icons/trayIconUpdateAvailableTemplate.png",
"/some-static-files-directory/build/tray/trayIconUpdateAvailableTemplate.png",
);
});
});
@@ -234,7 +234,7 @@ describe("installing update", () => {
it("shows tray icon for downloading update", () => {
expect(builder.tray.getIconPath()).toBe(
"/some-static-files-directory/icons/trayIconCheckingForUpdatesTemplate.png",
"/some-static-files-directory/build/tray/trayIconCheckingForUpdatesTemplate.png",
);
});
});
@@ -8,12 +8,12 @@ import { getApplicationBuilder } from "../../renderer/components/test-utils/get-
import type { AsyncFnMock } from "@async-fn/jest";
import asyncFn from "@async-fn/jest";
import type { LensWindow } from "../../main/start-main-application/lens-window/application-window/create-lens-window.injectable";
import lensResourcesDirInjectable from "../../common/vars/lens-resources-dir.injectable";
import focusApplicationInjectable from "../../main/electron-app/features/focus-application.injectable";
import type { CreateElectronWindow } from "../../main/start-main-application/lens-window/application-window/create-electron-window.injectable";
import createElectronWindowInjectable from "../../main/start-main-application/lens-window/application-window/create-electron-window.injectable";
import splashWindowInjectable from "../../main/start-main-application/lens-window/splash-window/splash-window.injectable";
import { runInAction } from "mobx";
import staticFilesDirectoryInjectable from "../../common/vars/static-files-directory.injectable";
describe("opening application window using tray", () => {
describe("given application has started", () => {
@@ -36,8 +36,8 @@ describe("opening application window using tray", () => {
mainDi.override(focusApplicationInjectable, () => focusApplicationMock);
mainDi.override(
lensResourcesDirInjectable,
() => "/some-lens-resources-directory",
staticFilesDirectoryInjectable,
() => "/some-static-directory",
);
const loadFileMock = jest
@@ -119,7 +119,7 @@ describe("opening application window using tray", () => {
});
it("starts loading static HTML of splash window", () => {
expect(callForSplashWindowHtmlMock).toHaveBeenCalledWith("/some-lens-resources-directory/static/splash.html");
expect(callForSplashWindowHtmlMock).toHaveBeenCalledWith("/some-static-directory/splash.html");
});
describe("when loading of splash window HTML resolves", () => {
@@ -9,13 +9,17 @@ interface Dependencies {
app: App;
}
export type GetElectronAppPath = (name: PathName) => string;
export type GetElectronAppPath = (name: PathName | "currentApp") => string;
export const getElectronAppPath = ({
app,
}: Dependencies): GetElectronAppPath => (
(name) => {
try {
if (name === "currentApp") {
return app.getAppPath();
}
return app.getPath(name);
} catch (e) {
return "";
@@ -4,7 +4,6 @@
*/
import { getInjectable } from "@ogre-tools/injectable";
import staticFilesDirectoryInjectable from "../../../common/vars/static-files-directory.injectable";
import isDevelopmentInjectable from "../../../common/vars/is-development.injectable";
import isMacInjectable from "../../../common/vars/is-mac.injectable";
import { camelCase, flow, upperFirst } from "lodash/fp";
import joinPathsInjectable from "../../../common/path/join-paths.injectable";
@@ -16,12 +15,11 @@ const getTrayIconPathInjectable = getInjectable({
instantiate: (di) => {
const joinPaths = di.inject(joinPathsInjectable);
const staticFilesDirectory = di.inject(staticFilesDirectoryInjectable);
const isDevelopment = di.inject(isDevelopmentInjectable);
const isMac = di.inject(isMacInjectable);
const baseIconDirectory = joinPaths(
staticFilesDirectory,
isDevelopment ? "../build/tray" : "icons", // copied within electron-builder extras
"build/tray",
);
const fileSuffix = isMac ? "Template.png" : ".png";
@@ -7,9 +7,9 @@ import { hasCorrectExtension } from "./has-correct-extension";
import readFileInjectable from "../../../../common/fs/read-file.injectable";
import readDirectoryInjectable from "../../../../common/fs/read-directory.injectable";
import type { RawTemplates } from "./create-resource-templates.injectable";
import staticFilesDirectoryInjectable from "../../../../common/vars/static-files-directory.injectable";
import joinPathsInjectable from "../../../../common/path/join-paths.injectable";
import parsePathInjectable from "../../../../common/path/parse.injectable";
import lensResourcesDirInjectable from "../../../../common/vars/lens-resources-dir.injectable";
const lensCreateResourceTemplatesInjectable = getInjectable({
id: "lens-create-resource-templates",
@@ -18,14 +18,14 @@ const lensCreateResourceTemplatesInjectable = getInjectable({
const readFile = di.inject(readFileInjectable);
const readDir = di.inject(readDirectoryInjectable);
const joinPaths = di.inject(joinPathsInjectable);
const staticFilesDirectory = di.inject(staticFilesDirectoryInjectable);
const parsePath = di.inject(parsePathInjectable);
const resourcesDirectory = di.inject(lensResourcesDirInjectable);
/**
* Mapping between file names and their contents
*/
const templates: [file: string, contents: string][] = [];
const templatesFolder = joinPaths(staticFilesDirectory, "../templates/create-resource");
const templatesFolder = joinPaths(resourcesDirectory, "templates/create-resource");
for (const dirEntry of await readDir(templatesFolder)) {
if (hasCorrectExtension(dirEntry)) {
@@ -4,18 +4,14 @@
*/
.TableHead {
$border: 1px solid var(--tableHeaderBorderColor);
background-color: var(--tableHeaderBackground);
border-bottom-width: var(--tableHeaderBorderWidth);
border-bottom-style: solid;
border-bottom-color: var(--tableHeaderBorderColor);
border-bottom: 1px solid var(--borderFaintColor);
color: var(--tableHeaderColor);
display: flex;
flex-shrink: 0;
&.topLine {
border-top: $border;
border-top: 1px solid var(--borderFaintColor);
}
&.sticky {
@@ -47,8 +47,6 @@ const lensDarkThemeInjectable = getInjectable({
tableBgcStripe: "#2a2d33",
tableBgcSelected: "#383c42",
tableHeaderBackground: "#262b2f",
tableHeaderBorderWidth: "1px",
tableHeaderBorderColor: "#36393e",
tableHeaderColor: "#ffffff",
tableSelectedRowColor: "#ffffff",
helmLogoBackground: "#ffffff",
@@ -47,8 +47,6 @@ const lensLightThemeInjectable = getInjectable({
tableBgcStripe: "#f8f8f8",
tableBgcSelected: "#f4f5f5",
tableHeaderBackground: "#f1f1f1",
tableHeaderBorderWidth: "2px",
tableHeaderBorderColor: "#3d90ce",
tableHeaderColor: "#555555",
tableSelectedRowColor: "#222222",
helmLogoBackground: "#ffffff",
-2
View File
@@ -76,8 +76,6 @@ export type LensColorName =
| "tableBgcStripe"
| "tableBgcSelected"
| "tableHeaderBackground"
| "tableHeaderBorderWidth"
| "tableHeaderBorderColor"
| "tableHeaderColor"
| "tableSelectedRowColor"
| "helmLogoBackground"