chore: updates after pr feedback

This commit is contained in:
Hugo Häggmark
2025-12-08 06:08:58 +01:00
parent 86018141d0
commit 49f891a24d
9 changed files with 69 additions and 35 deletions
@@ -23,8 +23,13 @@ export function getAppPluginMetas(): AppPluginMetas {
return cloneDeep(apps);
}
export function getAppPluginMeta(id: string): AppPluginConfig {
return getAppPluginMetas()[id];
export function getAppPluginMeta(id: string): AppPluginConfig | undefined {
if (!apps[id]) {
console.error(`Plugin meta missing for plugin with id: ${id}`);
return undefined;
}
return cloneDeep(apps[id]);
}
export function setAppPluginMetas(override: AppPluginMetas) {
@@ -449,8 +449,10 @@ describe('AddedComponentsRegistry', () => {
};
// Make sure that the meta-info is empty
const plugin = getAppPluginMeta(pluginId);
const config = { ...plugin, extensions: { ...plugin.extensions, addedComponents: [] } };
const meta = getAppPluginMeta(pluginId);
expect(meta).toBeDefined();
const config = { ...meta!, extensions: { ...meta!.extensions, addedComponents: [] } };
setAppPluginMetas({ [pluginId]: config });
registry.register({
@@ -500,8 +502,10 @@ describe('AddedComponentsRegistry', () => {
};
// Make sure that the meta-info is empty
const plugin = getAppPluginMeta(pluginId);
const config = { ...plugin, extensions: { ...plugin.extensions, addedComponents: [] } };
const meta = getAppPluginMeta(pluginId);
expect(meta).toBeDefined();
const config = { ...meta!, extensions: { ...meta!.extensions, addedComponents: [] } };
setAppPluginMetas({ [pluginId]: config });
registry.register({
@@ -528,8 +532,10 @@ describe('AddedComponentsRegistry', () => {
};
// Make sure that the meta-info is empty
const plugin = getAppPluginMeta(pluginId);
const config = { ...plugin, extensions: { ...plugin.extensions, addedComponents: [componentConfig] } };
const meta = getAppPluginMeta(pluginId);
expect(meta).toBeDefined();
const config = { ...meta!, extensions: { ...meta!.extensions, addedComponents: [componentConfig] } };
setAppPluginMetas({ [pluginId]: config });
registry.register({
@@ -641,8 +641,10 @@ describe('addedFunctionsRegistry', () => {
};
// Make sure that the meta-info is empty
const plugin = getAppPluginMeta(pluginId);
const config = { ...plugin, extensions: { ...plugin.extensions, addedFunctions: [] } };
const meta = getAppPluginMeta(pluginId);
expect(meta).toBeDefined();
const config = { ...meta!, extensions: { ...meta!.extensions, addedFunctions: [] } };
setAppPluginMetas({ [pluginId]: config });
registry.register({
@@ -692,8 +694,10 @@ describe('addedFunctionsRegistry', () => {
};
// Make sure that the meta-info is empty
const plugin = getAppPluginMeta(pluginId);
const config = { ...plugin, extensions: { ...plugin.extensions, addedFunctions: [] } };
const meta = getAppPluginMeta(pluginId);
expect(meta).toBeDefined();
const config = { ...meta!, extensions: { ...meta!.extensions, addedFunctions: [] } };
setAppPluginMetas({ [pluginId]: config });
registry.register({
@@ -720,8 +724,10 @@ describe('addedFunctionsRegistry', () => {
};
// Make sure that the meta-info is empty
const plugin = getAppPluginMeta(pluginId);
const config = { ...plugin, extensions: { ...plugin.extensions, addedFunctions: [fnConfig] } };
const meta = getAppPluginMeta(pluginId);
expect(meta).toBeDefined();
const config = { ...meta!, extensions: { ...meta!.extensions, addedFunctions: [fnConfig] } };
setAppPluginMetas({ [pluginId]: config });
registry.register({
@@ -623,8 +623,10 @@ describe('AddedLinksRegistry', () => {
};
// Make sure that the meta-info is empty
const plugin = getAppPluginMeta(pluginId);
const config = { ...plugin, extensions: { ...plugin.extensions, addedLinks: [] } };
const meta = getAppPluginMeta(pluginId);
expect(meta).toBeDefined();
const config = { ...meta!, extensions: { ...meta!.extensions, addedLinks: [] } };
setAppPluginMetas({ [pluginId]: config });
registry.register({
@@ -676,8 +678,10 @@ describe('AddedLinksRegistry', () => {
};
// Make sure that the meta-info is empty
const plugin = getAppPluginMeta(pluginId);
const config = { ...plugin, extensions: { ...plugin.extensions, addedLinks: [] } };
const meta = getAppPluginMeta(pluginId);
expect(meta).toBeDefined();
const config = { ...meta!, extensions: { ...meta!.extensions, addedLinks: [] } };
setAppPluginMetas({ [pluginId]: config });
registry.register({
@@ -705,8 +709,10 @@ describe('AddedLinksRegistry', () => {
};
// Make sure that the meta-info is empty
const plugin = getAppPluginMeta(pluginId);
const config = { ...plugin, extensions: { ...plugin.extensions, addedLinks: [linkConfig] } };
const meta = getAppPluginMeta(pluginId);
expect(meta).toBeDefined();
const config = { ...meta!, extensions: { ...meta!.extensions, addedLinks: [linkConfig] } };
setAppPluginMetas({ [pluginId]: config });
registry.register({
@@ -422,8 +422,10 @@ describe('ExposedComponentsRegistry', () => {
};
// Make sure that the meta-info is empty
const plugin = getAppPluginMeta(pluginId);
const config = { ...plugin, extensions: { ...plugin.extensions, exposedComponents: [] } };
const meta = getAppPluginMeta(pluginId);
expect(meta).toBeDefined();
const config = { ...meta!, extensions: { ...meta!.extensions, exposedComponents: [] } };
setAppPluginMetas({ [pluginId]: config });
registry.register({
@@ -473,8 +475,10 @@ describe('ExposedComponentsRegistry', () => {
};
// Make sure that the meta-info is empty
const plugin = getAppPluginMeta(pluginId);
const config = { ...plugin, extensions: { ...plugin.extensions, exposedComponents: [] } };
const meta = getAppPluginMeta(pluginId);
expect(meta).toBeDefined();
const config = { ...meta!, extensions: { ...meta!.extensions, exposedComponents: [] } };
setAppPluginMetas({ [pluginId]: config });
registry.register({
@@ -500,8 +504,10 @@ describe('ExposedComponentsRegistry', () => {
component: () => React.createElement('div', null, 'Hello World1'),
};
const plugin = getAppPluginMeta(pluginId);
const config = { ...plugin, extensions: { ...plugin.extensions, exposedComponents: [componentConfig] } };
const meta = getAppPluginMeta(pluginId);
expect(meta).toBeDefined();
const config = { ...meta!, extensions: { ...meta!.extensions, exposedComponents: [componentConfig] } };
setAppPluginMetas({ [pluginId]: config });
registry.register({
@@ -511,7 +511,9 @@ describe('usePluginComponents()', () => {
// The `AddedComponentsRegistry` is validating if the link is registered in the plugin metadata.
const meta = getAppPluginMeta(pluginId);
const config = { ...meta, extensions: { ...meta.extensions, addedComponents: [componentConfig] } };
expect(meta).toBeDefined();
const config = { ...meta!, extensions: { ...meta!.extensions, addedComponents: [componentConfig] } };
setAppPluginMetas({ [pluginId]: config });
wrapper = ({ children }: { children: React.ReactNode }) => (
@@ -332,8 +332,10 @@ describe('usePluginFunctions()', () => {
};
// The `AddedFunctionsRegistry` is validating if the function is registered in the plugin metadata.
const plugin = getAppPluginMeta(pluginId);
const config = { ...plugin, extensions: { ...plugin.extensions, addedFunctions: [functionConfig] } };
const meta = getAppPluginMeta(pluginId);
expect(meta).toBeDefined();
const config = { ...meta!, extensions: { ...meta!.extensions, addedFunctions: [functionConfig] } };
setAppPluginMetas({ [pluginId]: config });
wrapper = ({ children }: { children: React.ReactNode }) => (
@@ -269,8 +269,10 @@ describe('usePluginLinks()', () => {
};
// The `AddedLinksRegistry` is validating if the link is registered in the plugin metadata (config.apps).
const plugin = getAppPluginMeta(pluginId);
const config = { ...plugin, extensions: { ...plugin.extensions, addedLinks: [linkConfig] } };
const meta = getAppPluginMeta(pluginId);
expect(meta).toBeDefined();
const config = { ...meta!, extensions: { ...meta!.extensions, addedLinks: [linkConfig] } };
setAppPluginMetas({ [pluginId]: config });
wrapper = ({ children }: { children: React.ReactNode }) => (
@@ -683,7 +683,8 @@ export const getExposedComponentPluginDependencies = (exposedComponentId: string
// metadata field. (For example the plugins that expose components that the app depends on.)
// Heads up! This is a recursive function.
export const getAppPluginDependencies = (pluginId: string, visited: string[] = []): string[] => {
if (!getAppPluginMeta(pluginId)) {
const app = getAppPluginMeta(pluginId);
if (!app) {
return [];
}
@@ -692,9 +693,7 @@ export const getAppPluginDependencies = (pluginId: string, visited: string[] = [
return [];
}
const pluginIdDependencies = getAppPluginMeta(pluginId).dependencies.extensions.exposedComponents.map(
getAppPluginIdFromExposedComponentId
);
const pluginIdDependencies = app.dependencies.extensions.exposedComponents.map(getAppPluginIdFromExposedComponentId);
return (
pluginIdDependencies