Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions workspaces/extensions/.changeset/twelve-geese-buy.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
---
'@red-hat-developer-hub/backstage-plugin-extensions-backend': minor
'@red-hat-developer-hub/backstage-plugin-extensions-common': minor
'@red-hat-developer-hub/backstage-plugin-extensions': minor
'@red-hat-developer-hub/extensions-cli': minor
---

Replaced `disabled` field with `enabled` in plugin configuration
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,8 @@ export interface DynamicPluginsConfig {

export interface DynamicPluginConfig {
package: string;
disabled: boolean;
enabled?: boolean;
disabled?: boolean;
pluginConfig: JsonObject;
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
plugins:
- package: ''
disabled: true
enabled: false
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
plugins:
- package: ./dynamic-plugins/dist/package11-backend-dynamic
disabled: true
enabled: false
- package: ./dynamic-plugins/dist/package12
disabled: true
enabled: false
pluginConfig:
dynamicPlugins:
frontend:
Expand All @@ -11,4 +11,4 @@ plugins:
- path: /package12
importName: Package12Page
- package: ./dynamic-plugins/dist/package21-backend-dynamic
disabled: true
enabled: false
Original file line number Diff line number Diff line change
Expand Up @@ -127,18 +127,18 @@ export const mockPackages = [

export const mockDynamicPackage11 = {
package: mockPackages[0].spec.dynamicArtifact,
disabled: true,
enabled: false,
};

export const mockDynamicPackage12 = {
package: mockPackages[1].spec.dynamicArtifact,
disabled: true,
enabled: false,
pluginConfig: mockPackages[1].spec.appConfigExamples?.at(0)?.content,
};

export const mockDynamicPackage21 = {
package: mockPackages[2].spec.dynamicArtifact,
disabled: true,
enabled: false,
};

export const mockDynamicPlugin1 = [mockDynamicPackage11, mockDynamicPackage12];
Expand All @@ -161,8 +161,8 @@ export const mockFileInstallationStorage = {
}),
updatePackage: jest.fn(),
updatePackages: jest.fn(),
setPackageDisabled: jest.fn(),
setPackagesDisabled: jest.fn(),
setPackageEnabled: jest.fn(),
setPackagesEnabled: jest.fn(),
} as unknown as jest.Mocked<FileInstallationStorage>;

export const mockInstallationDataService = {
Expand All @@ -171,8 +171,8 @@ export const mockInstallationDataService = {
getInitializationError: jest.fn().mockReturnValue(undefined),
updatePackageConfig: jest.fn(),
updatePluginConfig: jest.fn(),
setPackageDisabled: jest.fn(),
setPluginDisabled: jest.fn(),
setPackageEnabled: jest.fn(),
setPluginEnabled: jest.fn(),
} as unknown as jest.Mocked<InstallationDataService>;

export const mockExtensionsApi = {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -158,7 +158,7 @@ describe('FileInstallationStorage', () => {
);
const updatedPackage = {
...mockDynamicPackage21,
disabled: false,
enabled: true,
};
const fileInstallationStorage = new FileInstallationStorage(
configFileName,
Expand Down Expand Up @@ -186,7 +186,7 @@ describe('FileInstallationStorage', () => {
);
const newPackage = {
package: newPackageName,
disabled: true,
enabled: false,
};
const fileInstallationStorage = new FileInstallationStorage(
configFileName,
Expand Down Expand Up @@ -248,12 +248,12 @@ describe('FileInstallationStorage', () => {
);
const addedPackage = {
package: './dynamic-plugins/dist/package11-backend-module-dynamic',
disabled: true,
enabled: false,
};
const updatedPlugin = [
{
...mockDynamicPackage11,
disabled: false,
enabled: true,
pluginConfig: {
plugin1: {
setting: true,
Expand All @@ -262,7 +262,7 @@ describe('FileInstallationStorage', () => {
},
{
...mockDynamicPackage12,
disabled: false,
enabled: true,
pluginConfig: {
dynamicPlugins: {
frontend: {
Expand Down Expand Up @@ -310,7 +310,7 @@ describe('FileInstallationStorage', () => {
const newPlugin = [
{
package: newPackageName,
disabled: true,
enabled: false,
},
];
const fileInstallationStorage = new FileInstallationStorage(
Expand Down Expand Up @@ -352,7 +352,7 @@ describe('FileInstallationStorage', () => {
});
});

describe('setPackageDisabled', () => {
describe('setPackageEnabled', () => {
afterEach(() => {
fs.writeFileSync(
resolve(__dirname, '../../__fixtures__/data/validPluginsConfig.yaml'),
Expand All @@ -366,7 +366,7 @@ describe('FileInstallationStorage', () => {
);
});

it('should add new package with disabled status', () => {
it('should add new package with enabled status', () => {
const configFileName = resolve(
__dirname,
'../../__fixtures__/data/validPluginsConfig.yaml',
Expand All @@ -376,19 +376,19 @@ describe('FileInstallationStorage', () => {
);
fileInstallationStorage.initialize();

fileInstallationStorage.setPackageDisabled(newPackageName, false);
fileInstallationStorage.setPackageEnabled(newPackageName, true);

const updatedCatalogInfoYaml = fs.readFileSync(configFileName, 'utf8');
const configYaml = parse(updatedCatalogInfoYaml);
expect(configYaml.plugins).toEqual([
mockDynamicPackage11,
mockDynamicPackage12,
mockDynamicPackage21,
{ package: newPackageName, disabled: false },
{ package: newPackageName, enabled: true },
]);
});

it('should update existing package with disabled status', () => {
it('should update existing package with enabled status', () => {
const configFileName = resolve(
__dirname,
'../../__fixtures__/data/validPluginsConfig.yaml',
Expand All @@ -398,22 +398,22 @@ describe('FileInstallationStorage', () => {
);
fileInstallationStorage.initialize();

fileInstallationStorage.setPackageDisabled(
fileInstallationStorage.setPackageEnabled(
mockDynamicPackage12.package,
false,
true,
);

const updatedCatalogInfoYaml = fs.readFileSync(configFileName, 'utf8');
const configYaml = parse(updatedCatalogInfoYaml);
expect(configYaml.plugins).toEqual([
mockDynamicPackage11,
{ ...mockDynamicPackage12, disabled: false },
{ ...mockDynamicPackage12, enabled: true },
mockDynamicPackage21,
]);
});
});

describe('setPackagesDisabled', () => {
describe('setPackagesEnabled', () => {
afterEach(() => {
fs.writeFileSync(
resolve(__dirname, '../../__fixtures__/data/validPluginsConfig.yaml'),
Expand All @@ -427,29 +427,29 @@ describe('FileInstallationStorage', () => {
);
});

it('should set disabled for existing plugin in the config', () => {
it('should set enabled for existing plugin in the config', () => {
const configFileName = resolve(
__dirname,
'../../__fixtures__/data/validPluginsConfig.yaml',
);
const updatedPlugin = [
{
...mockDynamicPackage11,
disabled: false,
enabled: true,
},
{
...mockDynamicPackage12,
disabled: false,
enabled: true,
},
];
const fileInstallationStorage = new FileInstallationStorage(
configFileName,
);
fileInstallationStorage.initialize();

fileInstallationStorage.setPackagesDisabled(
fileInstallationStorage.setPackagesEnabled(
new Set([mockDynamicPackage11.package, mockDynamicPackage12.package]),
false,
true,
);

const updatedCatalogInfoYaml = fs.readFileSync(configFileName, 'utf8');
Expand All @@ -460,25 +460,25 @@ describe('FileInstallationStorage', () => {
]);
});

it('should set disabled for new plugin in the config', () => {
it('should set enabled for new plugin in the config', () => {
const configFileName = resolve(
__dirname,
'../../__fixtures__/data/validPluginsConfig.yaml',
);
const newPlugin = [
{
package: newPackageName,
disabled: false,
enabled: true,
},
];
const fileInstallationStorage = new FileInstallationStorage(
configFileName,
);
fileInstallationStorage.initialize();

fileInstallationStorage.setPackagesDisabled(
fileInstallationStorage.setPackagesEnabled(
new Set([newPackageName]),
false,
true,
);

const updatedCatalogInfoYaml = fs.readFileSync(configFileName, 'utf8');
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,8 @@ export interface InstallationStorage {
updatePackage(packageName: string, newConfig: string): void;
getPackages(packageNames: Set<string>): string | undefined;
updatePackages(packageNames: Set<string>, newConfig: string): void;
setPackageDisabled(packageName: string, disabled: boolean): void;
setPackagesDisabled(packageNames: Set<string>, disabled: boolean): void;
setPackageEnabled(packageName: string, enabled: boolean): void;
setPackagesEnabled(packageNames: Set<string>, enabled: boolean): void;
}

export class FileInstallationStorage implements InstallationStorage {
Expand Down Expand Up @@ -133,18 +133,18 @@ export class FileInstallationStorage implements InstallationStorage {
this.save();
}

setPackageDisabled(packageName: string, disabled: boolean) {
setPackageEnabled(packageName: string, enabled: boolean) {
let pkg = this.getPackageYamlMap(packageName);
if (!pkg) {
pkg = new YAMLMap<string, JsonValue>();
pkg.set('package', packageName);
this.packages.add(pkg);
}
pkg.set('disabled', disabled);
pkg.set('enabled', enabled);
this.save();
}

setPackagesDisabled(packageNames: Set<string>, disabled: boolean) {
setPackagesEnabled(packageNames: Set<string>, enabled: boolean) {
const packages = this.config.get('plugins') as YAMLSeq<
YAMLMap<string, JsonValue>
>;
Expand All @@ -159,7 +159,7 @@ export class FileInstallationStorage implements InstallationStorage {
item.set('package', packageName);
packages.add(item);
}
item.set('disabled', disabled);
item.set('enabled', enabled);
}

this.save();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -200,7 +200,7 @@ describe('InstallationDataService', () => {
});

it('should update package', () => {
const newConfig = stringify({ ...mockDynamicPackage11, disabled: false });
const newConfig = stringify({ ...mockDynamicPackage11, enabled: true });
installationDataService.updatePackageConfig(
mockDynamicPackage11.package,
newConfig,
Expand Down Expand Up @@ -237,7 +237,7 @@ describe('InstallationDataService', () => {
});
});

describe('setPackageDisabled', () => {
describe('setPackageEnabled', () => {
beforeEach(() => {
installationDataService = InstallationDataService.fromConfig({
config: validConfig,
Expand All @@ -246,19 +246,19 @@ describe('InstallationDataService', () => {
});
});

it('should set package with disabled', async () => {
installationDataService.setPackageDisabled(
it('should set package enabled', async () => {
installationDataService.setPackageEnabled(
mockDynamicPackage11.package,
false,
);

expect(
mockFileInstallationStorage.setPackageDisabled,
mockFileInstallationStorage.setPackageEnabled,
).toHaveBeenCalledWith(mockDynamicPackage11.package, false);
});
});

describe('setPluginDisabled', () => {
describe('setPluginEnabled', () => {
beforeEach(() => {
installationDataService = InstallationDataService.fromConfig({
config: validConfig,
Expand All @@ -267,15 +267,13 @@ describe('InstallationDataService', () => {
});
});

it('should set plugin disabled', async () => {
await installationDataService.setPluginDisabled(plugin, true);
it('should set plugin enabled', async () => {
await installationDataService.setPluginEnabled(plugin, true);

expect(
mockFileInstallationStorage.setPackagesDisabled,
).toHaveBeenCalled();
expect(mockFileInstallationStorage.setPackagesEnabled).toHaveBeenCalled();

expect(
mockFileInstallationStorage.setPackagesDisabled,
mockFileInstallationStorage.setPackagesEnabled,
).toHaveBeenCalledWith(
new Set([
mockPackages[0].spec.dynamicArtifact,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -167,15 +167,12 @@ export class InstallationDataService {
this.installationStorage.updatePackages(dynamicArtifacts, newConfig);
}

setPackageDisabled(packageDynamicArtifact: string, disabled: boolean) {
this.installationStorage.setPackageDisabled(
packageDynamicArtifact,
disabled,
);
setPackageEnabled(packageDynamicArtifact: string, enabled: boolean) {
this.installationStorage.setPackageEnabled(packageDynamicArtifact, enabled);
}

async setPluginDisabled(plugin: ExtensionsPlugin, disabled: boolean) {
async setPluginEnabled(plugin: ExtensionsPlugin, enabled: boolean) {
const dynamicArtifacts = await this.getPluginDynamicArtifacts(plugin);
this.installationStorage.setPackagesDisabled(dynamicArtifacts, disabled);
this.installationStorage.setPackagesEnabled(dynamicArtifacts, enabled);
}
}
Loading
Loading