刘光辉
11 小时以前 0dfe84494048ce27ba8449831782128412d3eb13
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
/* @vitest-environment happy-dom */
 
import { mount } from '@vue/test-utils';
import { nextTick } from 'vue';
 
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
 
import Editor from '../Editor.vue';
 
const mocks = vi.hoisted(() => ({
  destroyEditor: vi.fn(),
  requestClose: vi.fn(),
}));
 
vi.mock('../loadDocsApi', () => ({ loadDocsApi: vi.fn().mockResolvedValue(undefined) }));
 
describe('OnlyOfficeEditor', () => {
  beforeEach(() => {
    mocks.destroyEditor.mockClear();
    mocks.requestClose.mockClear();
    (window as any).DocsAPI = {
      DocEditor: vi.fn(() => ({ destroyEditor: mocks.destroyEditor, requestClose: mocks.requestClose })),
    };
  });
 
  afterEach(() => {
    delete (window as any).DocsAPI;
  });
 
  it('将宿主关闭请求转发给 ONLYOFFICE 编辑器', async () => {
    const wrapper = mount(Editor, { props: { config: { document: { key: 'key-1' } } } });
    await nextTick();
    await nextTick();
 
    wrapper.vm.requestClose();
 
    expect(mocks.requestClose).toHaveBeenCalledTimes(1);
    wrapper.unmount();
  });
});