Skip to content

Commit

Permalink
test: weapp
Browse files Browse the repository at this point in the history
  • Loading branch information
gcfeng committed Dec 31, 2024
1 parent 2d61948 commit df0fa45
Show file tree
Hide file tree
Showing 5 changed files with 48 additions and 23 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"changes": [
{
"packageName": "@coze/taro-api",
"comment": "weapp",
"type": "patch"
}
],
"packageName": "@coze/taro-api",
"email": "[email protected]"
}
14 changes: 7 additions & 7 deletions packages/coze-taro/test/api.spec.ts
Original file line number Diff line number Diff line change
@@ -1,17 +1,12 @@
import { CozeAPI } from '../src/api';
import { ttCreateEventSource } from './stubs';

vi.stubGlobal('tt', {
createEventSource: ttCreateEventSource,
});

vi.mock('../src/mixins/platform', async () => {
const mod = await vi.importActual('../src/mixins/platform.tt');
const mod = await vi.importActual('../src/mixins/platform.weapp');
return mod;
});

vi.mock('../src/event-source/index', async () => {
const mod = await vi.importActual('../src/event-source/index.tt');
const mod = await vi.importActual('../src/event-source/index.weapp');
return mod;
});

Expand Down Expand Up @@ -40,6 +35,11 @@ describe('CozeAPI - mini', () => {
caches.push(chunk);
}
expect(mockOnBeforeAPICall).toHaveBeenCalledOnce();

await cozeApi.workflows.runs.create({
workflow_id: 'nonStreaming',
});
expect(mockOnBeforeAPICall).toHaveBeenCalledTimes(2);
});

it('should refresh token', async () => {
Expand Down
18 changes: 7 additions & 11 deletions packages/coze-taro/test/request.spec.ts
Original file line number Diff line number Diff line change
@@ -1,16 +1,6 @@
import { type Deferred } from '../src/helpers/async';
import { AbortController } from '../src/helpers/abortcontroller';
import { sendRequest } from '../src/event-source/request';
import { ttCreateEventSource } from './stubs';

vi.stubGlobal('tt', {
createEventSource: ttCreateEventSource,
});

vi.mock('../src/event-source/index', async () => {
const mod = await vi.importActual('../src/event-source/index.tt');
return mod;
});

describe('SSERequest', () => {
beforeEach(() => {
Expand Down Expand Up @@ -49,14 +39,20 @@ describe('SSERequest', () => {
deferred: null,
error: null,
};

const unhandle = () => {
// donothing
};
process.on('unhandledRejection', unhandle);

const controller = new AbortController();
sendRequest({ url: 'xx', signal: controller.signal }, result);

setTimeout(() => {
controller.abort();
}, 5);

vi.runAllTimersAsync();
await vi.runAllTimersAsync();
await expect(result.deferred?.promise).rejects.toThrowError();
expect(result.done).toBe(true);
});
Expand Down
7 changes: 4 additions & 3 deletions packages/coze-taro/test/setup.ts
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
import { Events, taroStreamingRequest, taroUploadFile } from './stubs';
import { Events, taroRequest, taroUploadFile } from './stubs';

vi.doMock('@tarojs/taro', () => ({
default: {
Events,
request: taroStreamingRequest,
request: taroRequest,
uploadFile: taroUploadFile,
},
Events,
getEnv: () => 'TT',
request: taroRequest,
getEnv: () => 'WEAPP',
ENV_TYPE: {
WEB: 'WEB',
},
Expand Down
21 changes: 19 additions & 2 deletions packages/coze-taro/test/stubs.ts
Original file line number Diff line number Diff line change
Expand Up @@ -194,18 +194,30 @@ export const ttCreateEventSource: TTCreateEVentSource = ({ data, timeout }) => {
return task;
};

export const taroStreamingRequest = ({
export const taroRequest = ({
data,
timeout,
fail,
success,
}: {
data?: Record<string, unknown>;
timeout?: number;
fail: (err: { errMsg: string }) => void;
success: (res: { statusCode: number; errMsg?: string }) => void;
}) => {
if (data?.workflow_id === 'nonStreaming') {
return Promise.resolve();
}

const task = new TaroStreamingTask();

let index = 0;
const mockReceiveMessage = () => {
if (index < mockWorkflowMessages.length && !task.closed) {
if (data && data.workflow_id && data.workflow_id === 'fail') {
setTimeout(() => {
fail({ errMsg: 'fail' });
}, 10);
} else if (index < mockWorkflowMessages.length && !task.closed) {
setTimeout(() => {
if (index === 2) {
// mock long message split
Expand Down Expand Up @@ -234,6 +246,11 @@ export const taroStreamingRequest = ({
setTimeout(() => {
task.events.trigger('headersReceived');
mockReceiveMessage();
if (timeout) {
setTimeout(() => {
task.abort();
}, timeout);
}
}, 0);

return task;
Expand Down

0 comments on commit df0fa45

Please sign in to comment.