diff --git a/packages/plugins/@nocobase/plugin-multi-app-manager/src/server/__tests__/multiple-apps.test.ts b/packages/plugins/@nocobase/plugin-multi-app-manager/src/server/__tests__/multiple-apps.test.ts index bf203e7f0d..a3b9a0aeaa 100644 --- a/packages/plugins/@nocobase/plugin-multi-app-manager/src/server/__tests__/multiple-apps.test.ts +++ b/packages/plugins/@nocobase/plugin-multi-app-manager/src/server/__tests__/multiple-apps.test.ts @@ -260,6 +260,7 @@ describe('multiple apps', () => { values: { name: subAppName, options: { + autoStart: true, plugins: [], }, }, @@ -282,6 +283,39 @@ describe('multiple apps', () => { expect(jestFn).toBeCalled(); + // sub app should remove after upgrade + expect(AppSupervisor.getInstance().hasApp(subAppName)).toBeTruthy(); + }); + + it('should not upgrade sub apps when main app upgrade', async () => { + const subAppName = `t_${uid()}`; + + await app.db.getRepository('applications').create({ + values: { + name: subAppName, + options: { + plugins: [], + }, + }, + context: { + waitSubAppInstall: true, + }, + }); + + await AppSupervisor.getInstance().removeApp(subAppName); + + const jestFn = vi.fn(); + + AppSupervisor.getInstance().on('afterAppAdded', (subApp) => { + subApp.on('afterUpgrade', () => { + jestFn(); + }); + }); + + await app.runCommand('upgrade'); + + expect(jestFn).not.toBeCalled(); + // sub app should remove after upgrade expect(AppSupervisor.getInstance().hasApp(subAppName)).toBeFalsy(); });