@slavmak2486/bx24ts
Version:
Library for bitrix24
54 lines (48 loc) • 1.85 kB
text/typescript
import {BX24Server} from '../index';
import axios from 'axios';
import MockAdapter from "axios-mock-adapter";
import dealList from './mocks/dealList';
import dealListPage2 from './mocks/dealListPage2';
import authExample from './constants/authExample';
import batchAppOption from './mocks/batchAppOption';
import auth from './mocks/auth';
import {BX24Dev} from '../BX24Dev';
let mock:MockAdapter;
let bx24:BX24Dev;
beforeAll(async () => {
mock = new MockAdapter(axios);
mock.onPost('https://oauth.bitrix.info/oauth/token/').reply(201, auth);
mock.onPost('https://example.bitrix24.ru/rest/batch.json').reply(200, batchAppOption);
await new Promise(resolve=>{
bx24=new BX24Dev(authExample, ()=>{
resolve(true);
});
});
mock.reset();
});
afterEach(() => {
mock.reset();
});
test('Test callMethod with callBack', done => {
const dealPage2=dealListPage2;
// mock.onPost('https://example.bitrix24.ru/rest/crm.deal.list.json', {start:50}).reply(201, dealPage2);
mock.onPost('https://example.bitrix24.ru/rest/crm.deal.list.json').replyOnce(201, dealList);
mock.onPost('https://example.bitrix24.ru/rest/crm.deal.list.json').replyOnce(201, dealPage2);
bx24.callMethod('crm.deal.list', {}, (result)=>{
if (!result.query.data.start){
expect(result.data()).toEqual(dealList.result);
expect(result.total()).toEqual(dealList.total);
expect(result.error()).toBeUndefined();
const more=result.more();
expect(more).toEqual(true);
result.next();
}
else{
expect(result.data()).toEqual(dealPage2.result);
expect(result.total()).toEqual(dealPage2.total);
expect(result.error()).toBeUndefined();
done();
}
//
});
});