diff --git a/packages/sdk/src/controllers/FrameController.ts b/packages/sdk/src/controllers/FrameController.ts index 4ec8d737..2c0d4a90 100644 --- a/packages/sdk/src/controllers/FrameController.ts +++ b/packages/sdk/src/controllers/FrameController.ts @@ -340,7 +340,17 @@ export class FrameController { */ remove = async (id: Id) => { const res = await this.#editorAPI; - return res.removeFrame(id).then((result) => getEditorResponseData<null>(result)); + return res.removeFrames([id]).then((result) => getEditorResponseData<null>(result)); + }; + + /** + * This method will remove frames with the given ids. + * @param ids an array of ids of the frames to be removed. + * @returns + */ + removeFrames = async (ids: Id[]) => { + const res = await this.#editorAPI; + return res.removeFrames(ids).then((result) => getEditorResponseData<null>(result)); }; /** diff --git a/packages/sdk/src/tests/controllers/FrameController.test.ts b/packages/sdk/src/tests/controllers/FrameController.test.ts index 17ef047d..83c14e9e 100644 --- a/packages/sdk/src/tests/controllers/FrameController.test.ts +++ b/packages/sdk/src/tests/controllers/FrameController.test.ts @@ -36,6 +36,7 @@ const mockedEditorApi: EditorAPI = { setFrameRotation: async () => getEditorResponseData(castToEditorResponse(null)), setFrameIsVisible: async () => getEditorResponseData(castToEditorResponse(null)), removeFrame: async () => getEditorResponseData(castToEditorResponse(null)), + removeFrames: async () => getEditorResponseData(castToEditorResponse(null)), resetFrame: async () => getEditorResponseData(castToEditorResponse(null)), resetFrameX: async () => getEditorResponseData(castToEditorResponse(null)), resetFrameY: async () => getEditorResponseData(castToEditorResponse(null)), @@ -89,7 +90,7 @@ beforeEach(() => { jest.spyOn(mockedEditorApi, 'setFrameY'); jest.spyOn(mockedEditorApi, 'setFrameRotation'); jest.spyOn(mockedEditorApi, 'setFrameIsVisible'); - jest.spyOn(mockedEditorApi, 'removeFrame'); + jest.spyOn(mockedEditorApi, 'removeFrames'); jest.spyOn(mockedEditorApi, 'resetFrame'); jest.spyOn(mockedEditorApi, 'resetFrameX'); jest.spyOn(mockedEditorApi, 'resetFrameY'); @@ -249,8 +250,14 @@ describe('FrameController', () => { it('Should be possible to remove a frame', async () => { await mockedFrameController.remove(id); - expect(mockedEditorApi.removeFrame).toHaveBeenCalledTimes(1); - expect(mockedEditorApi.removeFrame).toHaveBeenCalledWith(id); + expect(mockedEditorApi.removeFrames).toHaveBeenCalledTimes(1); + expect(mockedEditorApi.removeFrames).toHaveBeenCalledWith([id]); + }); + + it('Should be possible to remove frames', async () => { + await mockedFrameController.removeFrames([id]); + expect(mockedEditorApi.removeFrames).toHaveBeenCalledTimes(2); + expect(mockedEditorApi.removeFrames).toHaveBeenCalledWith([id]); }); it('Should be possible to reset a frame', async () => {