1
0
mirror of https://github.com/lensapp/lens.git synced 2025-05-20 05:10:56 +00:00

feat: Allow built versions to specify an environment (#7495)

* feat: Allow built versions to specify an environment

- This should be hard coded at build time

Signed-off-by: Sebastian Malton <sebastian@malton.name>

* chore: Add default value to open-lens

Signed-off-by: Sebastian Malton <sebastian@malton.name>

* chore: Add  --no-bail to test script invocations

Signed-off-by: Sebastian Malton <sebastian@malton.name>

* chore: Add tests for coverage of new code

Signed-off-by: Sebastian Malton <sebastian@malton.name>

---------

Signed-off-by: Sebastian Malton <sebastian@malton.name>
This commit is contained in:
Sebastian Malton 2023-04-05 10:17:21 -04:00 committed by GitHub
parent af1808dbb3
commit 128b05d4d4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 55 additions and 2 deletions

View File

@ -25,9 +25,9 @@
"lint:fix": "lerna run lint:fix --stream", "lint:fix": "lerna run lint:fix --stream",
"mkdocs:serve-local": "docker build -t mkdocs-serve-local:latest mkdocs/ && docker run --rm -it -p 8000:8000 -v ${PWD}:/docs mkdocs-serve-local:latest", "mkdocs:serve-local": "docker build -t mkdocs-serve-local:latest mkdocs/ && docker run --rm -it -p 8000:8000 -v ${PWD}:/docs mkdocs-serve-local:latest",
"mkdocs:verify": "docker build -t mkdocs-serve-local:latest mkdocs/ && docker run --rm -v ${PWD}:/docs mkdocs-serve-local:latest build --strict", "mkdocs:verify": "docker build -t mkdocs-serve-local:latest mkdocs/ && docker run --rm -v ${PWD}:/docs mkdocs-serve-local:latest build --strict",
"test:unit": "lerna run --stream test:unit", "test:unit": "lerna run --stream test:unit --no-bail",
"test:unit:watch": "jest --watch", "test:unit:watch": "jest --watch",
"test:integration": "lerna run --stream test:integration", "test:integration": "lerna run --stream test:integration --no-bail",
"bump-version": "lerna version --no-git-tag-version --no-push", "bump-version": "lerna version --no-git-tag-version --no-push",
"precreate-release-pr": "cd packages/release-tool && npm run build", "precreate-release-pr": "cd packages/release-tool && npm run build",
"create-release-pr": "node packages/release-tool/dist/index.js" "create-release-pr": "node packages/release-tool/dist/index.js"

View File

@ -14,6 +14,7 @@ import { buildVersionInjectionToken } from "../../common/vars/build-semantic-ver
import { asLegacyGlobalForExtensionApi } from "../as-legacy-globals-for-extension-api/as-legacy-global-object-for-extension-api"; import { asLegacyGlobalForExtensionApi } from "../as-legacy-globals-for-extension-api/as-legacy-global-object-for-extension-api";
import enabledExtensionsInjectable from "../../features/extensions/enabled/common/enabled-extensions.injectable"; import enabledExtensionsInjectable from "../../features/extensions/enabled/common/enabled-extensions.injectable";
import userPreferencesStateInjectable from "../../features/user-preferences/common/state.injectable"; import userPreferencesStateInjectable from "../../features/user-preferences/common/state.injectable";
import { lensBuildEnvironmentInjectionToken } from "@k8slens/application";
const userStore = asLegacyGlobalForExtensionApi(userPreferencesStateInjectable); const userStore = asLegacyGlobalForExtensionApi(userPreferencesStateInjectable);
const enabledExtensions = asLegacyGlobalForExtensionApi(enabledExtensionsInjectable); const enabledExtensions = asLegacyGlobalForExtensionApi(enabledExtensionsInjectable);
@ -53,6 +54,11 @@ export const App = {
return di.inject(isLinuxInjectable); return di.inject(isLinuxInjectable);
}, },
get lensBuildEnvironment() {
const di = getLegacyGlobalDiForExtensionApi();
return di.inject(lensBuildEnvironmentInjectionToken);
},
/** /**
* @deprecated This value is now `""` and is left here for backwards compatibility. * @deprecated This value is now `""` and is left here for backwards compatibility.
*/ */

View File

@ -0,0 +1,14 @@
/**
* Copyright (c) OpenLens Authors. All rights reserved.
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
import { lensBuildEnvironmentInjectionToken } from "@k8slens/application";
import { getInjectable } from "@ogre-tools/injectable";
const lensBuildEnvironmentInjectable = getInjectable({
id: "lens-build-environment",
instantiate: () => "unknown",
injectionToken: lensBuildEnvironmentInjectionToken,
});
export default lensBuildEnvironmentInjectable;

View File

@ -7,3 +7,5 @@ export { startApplicationInjectionToken } from "./src/start-application/start-ap
export { applicationInformationToken } from "./src/application-information-token.no-coverage"; export { applicationInformationToken } from "./src/application-information-token.no-coverage";
export type { ApplicationInformation } from "./src/application-information-token.no-coverage"; export type { ApplicationInformation } from "./src/application-information-token.no-coverage";
export { lensBuildEnvironmentInjectionToken } from "./src/environment-token";

View File

@ -0,0 +1,22 @@
import { createContainer, DiContainer, getInjectable } from "@ogre-tools/injectable";
import { lensBuildEnvironmentInjectionToken } from "./environment-token";
describe("environment-token coverage tests", () => {
let di: DiContainer;
beforeEach(() => {
di = createContainer("irrelevant");
});
it("should be able to specify a build environment", () => {
di.register(
getInjectable({
id: "some-id",
instantiate: () => "some-value",
injectionToken: lensBuildEnvironmentInjectionToken,
}),
);
expect(di.inject(lensBuildEnvironmentInjectionToken)).toBe("some-value");
});
});

View File

@ -0,0 +1,9 @@
/**
* Copyright (c) OpenLens Authors. All rights reserved.
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
import { getInjectionToken } from "@ogre-tools/injectable";
export const lensBuildEnvironmentInjectionToken = getInjectionToken<string>({
id: "lens-build-environment-token",
});