mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
Optimize registration of injectables in unit tests to make tests faster
Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
This commit is contained in:
parent
9910f042d1
commit
b9c239701b
10
package.json
10
package.json
@ -209,11 +209,11 @@
|
|||||||
"@hapi/subtext": "^7.0.4",
|
"@hapi/subtext": "^7.0.4",
|
||||||
"@kubernetes/client-node": "^0.16.3",
|
"@kubernetes/client-node": "^0.16.3",
|
||||||
"@material-ui/styles": "^4.11.5",
|
"@material-ui/styles": "^4.11.5",
|
||||||
"@ogre-tools/fp": "9.0.0",
|
"@ogre-tools/fp": "9.0.1",
|
||||||
"@ogre-tools/injectable": "9.0.0",
|
"@ogre-tools/injectable": "9.0.1",
|
||||||
"@ogre-tools/injectable-extension-for-auto-registration": "9.0.0",
|
"@ogre-tools/injectable-extension-for-auto-registration": "9.0.1",
|
||||||
"@ogre-tools/injectable-extension-for-mobx": "9.0.0",
|
"@ogre-tools/injectable-extension-for-mobx": "9.0.1",
|
||||||
"@ogre-tools/injectable-react": "9.0.0",
|
"@ogre-tools/injectable-react": "9.0.1",
|
||||||
"@sentry/electron": "^3.0.7",
|
"@sentry/electron": "^3.0.7",
|
||||||
"@sentry/integrations": "^6.19.3",
|
"@sentry/integrations": "^6.19.3",
|
||||||
"@side/jest-runtime": "^1.0.1",
|
"@side/jest-runtime": "^1.0.1",
|
||||||
|
|||||||
@ -4,7 +4,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import glob from "glob";
|
import glob from "glob";
|
||||||
import { kebabCase, memoize, noop } from "lodash/fp";
|
import { kebabCase, memoize, noop, chunk } from "lodash/fp";
|
||||||
import type { DiContainer, Injectable } from "@ogre-tools/injectable";
|
import type { DiContainer, Injectable } from "@ogre-tools/injectable";
|
||||||
import { createContainer } from "@ogre-tools/injectable";
|
import { createContainer } from "@ogre-tools/injectable";
|
||||||
import { Environments, setLegacyGlobalDiForExtensionApi } from "../extensions/as-legacy-globals-for-extension-api/legacy-global-di-for-extension-api";
|
import { Environments, setLegacyGlobalDiForExtensionApi } from "../extensions/as-legacy-globals-for-extension-api/legacy-global-di-for-extension-api";
|
||||||
@ -112,15 +112,13 @@ export function getDiForUnitTesting(opts: { doGeneralOverrides?: boolean } = {})
|
|||||||
|
|
||||||
setLegacyGlobalDiForExtensionApi(di, Environments.main);
|
setLegacyGlobalDiForExtensionApi(di, Environments.main);
|
||||||
|
|
||||||
for (const filePath of getInjectableFilePaths()) {
|
const filePaths = getInjectableFilePaths();
|
||||||
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
||||||
const injectableInstance = require(filePath).default;
|
|
||||||
|
|
||||||
di.register({
|
const injectables = filePaths.map(filePath => require(filePath).default);
|
||||||
...injectableInstance,
|
|
||||||
aliases: [injectableInstance, ...(injectableInstance.aliases || [])],
|
chunk(100)(injectables).forEach(chunkInjectables => {
|
||||||
|
di.register(...chunkInjectables);
|
||||||
});
|
});
|
||||||
}
|
|
||||||
|
|
||||||
di.preventSideEffects();
|
di.preventSideEffects();
|
||||||
|
|
||||||
|
|||||||
@ -4,10 +4,8 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import glob from "glob";
|
import glob from "glob";
|
||||||
import { memoize, noop } from "lodash/fp";
|
import { memoize, noop, chunk } from "lodash/fp";
|
||||||
import type {
|
import type { DiContainer, Injectable } from "@ogre-tools/injectable";
|
||||||
DiContainer,
|
|
||||||
Injectable } from "@ogre-tools/injectable";
|
|
||||||
import {
|
import {
|
||||||
createContainer,
|
createContainer,
|
||||||
} from "@ogre-tools/injectable";
|
} from "@ogre-tools/injectable";
|
||||||
@ -82,14 +80,13 @@ export const getDiForUnitTesting = (opts: { doGeneralOverrides?: boolean } = {})
|
|||||||
|
|
||||||
setLegacyGlobalDiForExtensionApi(di, Environments.renderer);
|
setLegacyGlobalDiForExtensionApi(di, Environments.renderer);
|
||||||
|
|
||||||
for (const filePath of getInjectableFilePaths()) {
|
const filePaths = getInjectableFilePaths();
|
||||||
const injectableInstance = require(filePath).default;
|
|
||||||
|
|
||||||
di.register({
|
const injectables = filePaths.map(filePath => require(filePath).default);
|
||||||
...injectableInstance,
|
|
||||||
aliases: [injectableInstance, ...(injectableInstance.aliases || [])],
|
chunk(100)(injectables).forEach(chunkInjectables => {
|
||||||
|
di.register(...chunkInjectables);
|
||||||
});
|
});
|
||||||
}
|
|
||||||
|
|
||||||
di.preventSideEffects();
|
di.preventSideEffects();
|
||||||
|
|
||||||
|
|||||||
54
yarn.lock
54
yarn.lock
@ -1211,46 +1211,46 @@
|
|||||||
"@nodelib/fs.scandir" "2.1.5"
|
"@nodelib/fs.scandir" "2.1.5"
|
||||||
fastq "^1.6.0"
|
fastq "^1.6.0"
|
||||||
|
|
||||||
"@ogre-tools/fp@9.0.0", "@ogre-tools/fp@^9.0.0":
|
"@ogre-tools/fp@9.0.1", "@ogre-tools/fp@^9.0.1":
|
||||||
version "9.0.0"
|
version "9.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/@ogre-tools/fp/-/fp-9.0.0.tgz#926cd4f13b52961156161feeeafddf22a0ad39c0"
|
resolved "https://registry.yarnpkg.com/@ogre-tools/fp/-/fp-9.0.1.tgz#22c23bd209f6f56bf66a5ff4514930334a3a4782"
|
||||||
integrity sha512-kMUgzhdjHuph0UWteOfyXNGBavZJX23NOA5su6fx9NdTzWhl9yB5Uf6Q//nOvL9COftjZDwnAgIaDU4MPdjyqA==
|
integrity sha512-7kORUcvR9DZz5/2qDSSKExGeisXzfmOafP+Z6l8C+WQXEmEQm7CmFMyBEyMkei0eNFzNghlKYgRFpsvBdU3KAg==
|
||||||
dependencies:
|
dependencies:
|
||||||
lodash "^4.17.21"
|
lodash "^4.17.21"
|
||||||
|
|
||||||
"@ogre-tools/injectable-extension-for-auto-registration@9.0.0":
|
"@ogre-tools/injectable-extension-for-auto-registration@9.0.1":
|
||||||
version "9.0.0"
|
version "9.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/@ogre-tools/injectable-extension-for-auto-registration/-/injectable-extension-for-auto-registration-9.0.0.tgz#69463737ef4f7777db4703964b8a72a5fb82d6b3"
|
resolved "https://registry.yarnpkg.com/@ogre-tools/injectable-extension-for-auto-registration/-/injectable-extension-for-auto-registration-9.0.1.tgz#e00dff5bd833068faa58d8fa514b218515c55775"
|
||||||
integrity sha512-+3I9Z0GfA04zZoj7Nw5WhJLDFLJgr5xv8Kp1zPDuT9/OvE9EA6hzAqakMDLbvn1zZOJjkJCGk44x6UjSQJp/9w==
|
integrity sha512-reyhW2wWPrNnGXo88QKWUsLyhjF195i0/iXfdAoR8/4lRxWmzka58bc8r6jFvTBBJ6eXaGidhUa5DqZe+Oia2Q==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@ogre-tools/fp" "^9.0.0"
|
"@ogre-tools/fp" "^9.0.1"
|
||||||
"@ogre-tools/injectable" "^9.0.0"
|
"@ogre-tools/injectable" "^9.0.1"
|
||||||
lodash "^4.17.21"
|
lodash "^4.17.21"
|
||||||
|
|
||||||
"@ogre-tools/injectable-extension-for-mobx@9.0.0":
|
"@ogre-tools/injectable-extension-for-mobx@9.0.1":
|
||||||
version "9.0.0"
|
version "9.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/@ogre-tools/injectable-extension-for-mobx/-/injectable-extension-for-mobx-9.0.0.tgz#ed14df39b266e521272977821d3e05bcbd647577"
|
resolved "https://registry.yarnpkg.com/@ogre-tools/injectable-extension-for-mobx/-/injectable-extension-for-mobx-9.0.1.tgz#3d9e6e119b7db5a4e4309e89ba6b301635c8da90"
|
||||||
integrity sha512-9Hrtr7AdibcD+Fqn2qNsjiOUakAACO55TB1IqNsOJMMuqQHVB5SFZTHBzdVRqqqY2MwQvWYvd4xfy+beItD/xw==
|
integrity sha512-wNHIG73NTGfmRb0b2nNhJD9ek4RcyBp/189KfrXhTt6/5KwMEuOeJjAbh8xwbhpYJnWFcMzWKLTqePozc+Ntww==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@ogre-tools/fp" "^9.0.0"
|
"@ogre-tools/fp" "^9.0.1"
|
||||||
"@ogre-tools/injectable" "^9.0.0"
|
"@ogre-tools/injectable" "^9.0.1"
|
||||||
lodash "^4.17.21"
|
lodash "^4.17.21"
|
||||||
|
|
||||||
"@ogre-tools/injectable-react@9.0.0":
|
"@ogre-tools/injectable-react@9.0.1":
|
||||||
version "9.0.0"
|
version "9.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/@ogre-tools/injectable-react/-/injectable-react-9.0.0.tgz#c5c510e893a5c1d7994d8709f70606967cabdec2"
|
resolved "https://registry.yarnpkg.com/@ogre-tools/injectable-react/-/injectable-react-9.0.1.tgz#d72a155b914873f1a5e35ee167aa14dd7c0e7454"
|
||||||
integrity sha512-vGQrwkcWibRUWFPbu392riBYY4dXK051FxwyMsDYNRqmvaLo8HuumwjzS1DWS7db/P9Li+Kc+Ms670xIZepcpA==
|
integrity sha512-GjkhhONy4hamw5Mx79ZxhL3Pbgnfnf1mrkixDkqlXFzhdPBHDtCYIZu9Y6NjSRLgEwXTrAPYv9lDqREnRbUwLA==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@ogre-tools/fp" "^9.0.0"
|
"@ogre-tools/fp" "^9.0.1"
|
||||||
"@ogre-tools/injectable" "^9.0.0"
|
"@ogre-tools/injectable" "^9.0.1"
|
||||||
lodash "^4.17.21"
|
lodash "^4.17.21"
|
||||||
|
|
||||||
"@ogre-tools/injectable@9.0.0", "@ogre-tools/injectable@^9.0.0":
|
"@ogre-tools/injectable@9.0.1", "@ogre-tools/injectable@^9.0.1":
|
||||||
version "9.0.0"
|
version "9.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/@ogre-tools/injectable/-/injectable-9.0.0.tgz#0819bc7b5fbae0a467f3250b10b4adb003268067"
|
resolved "https://registry.yarnpkg.com/@ogre-tools/injectable/-/injectable-9.0.1.tgz#611a2dd8468bfe3610f005178837d76071a44a70"
|
||||||
integrity sha512-z9X86Q9AEkkilLu9V33j/aXv/IUoG944AdfN6WX2zZgJqRNjESN9spoOMqdKqib6JmEjCRxpMvaMwHLQSh14fg==
|
integrity sha512-orcERUOeUEP2oBAcr9rKYbik+r/xJEIb5uedPMMqPzPJnNwZ9JA/1rDEJcx1/I9aHgjUQpeFANjYI4eYDcwEYQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@ogre-tools/fp" "^9.0.0"
|
"@ogre-tools/fp" "^9.0.1"
|
||||||
lodash "^4.17.21"
|
lodash "^4.17.21"
|
||||||
|
|
||||||
"@panva/asn1.js@^1.0.0":
|
"@panva/asn1.js@^1.0.0":
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user