import { mocked } from 'ts-jest/utils'; import updateFunctionHttpTrigger from '../../../service/cloud/httptrigger.function'; import request from '../../../utils/request'; jest.mock('../../../utils/request'); /* beforeAll(() => { }) */ afterEach(() => { mocked(request).mockReset(); }); describe('Cloud: httptrigger', () => { it('开始失败', async () => { const httpTriggerPath = '/http/todo'; mocked(request).mockResolvedValueOnce({ success: false, }); let err; await updateFunctionHttpTrigger({ appId: '1', spaceId: '1', name: 'todo', enable: true, httpTriggerPath, }).catch((e) => { err = e; }); expect(mocked(request).mock.calls.length).toBe(1); expect(err).toEqual(new Error('设置HTTP触发功能失败')); }); it('enable: true', async () => { const httpTriggerPath = '/http/todo'; const endPoint = 'www.alipay.com'; mocked(request) .mockResolvedValueOnce({ success: true, defaultEndpoint: endPoint, }) .mockResolvedValueOnce({ httpTriggerPath, }); const result = await updateFunctionHttpTrigger({ appId: '1', spaceId: '1', name: 'todo', enable: true, httpTriggerPath, }); expect(mocked(request).mock.calls.length).toBe(2); expect(result).toStrictEqual({ enable: true, httpTriggerPath: 'https://' + endPoint + httpTriggerPath, }); }); it('enable: false', async () => { mocked(request).mockResolvedValueOnce({}); const result = await updateFunctionHttpTrigger({ appId: '1', spaceId: '1', name: 'todo', enable: false, }); expect(mocked(request).mock.calls.length).toBe(1); expect(result).toStrictEqual({ enable: false, }); }); });