import axios from "axios"; import MockAdapter from "axios-mock-adapter"; import { BX24Dev } from "../../BX24Dev"; import authExample from "../constants/authExample"; import auth from "../mocks/auth"; import batchAppOption from "../mocks/batchAppOption"; let mock:MockAdapter; let bx24:BX24Dev; const exampleObj:any={ param1:'1', param2:2, param3: new Date('2022-12-13T00:00:00.000Z'), param4: [1,2,3,4], param5: ['a', 'b', 'c', 0], param6: { test: [{a:'b', c:'d'}, {a1:'b1', c1:'d1'}], test2: [{a2:'b2', c3:'d3'}, {a4:'b4', c5:'d5'}], } }; 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('Stringify manual Str', async () => { const testObj=JSON.parse(JSON.stringify(exampleObj)); const urlStr='param1=1¶m2=2¶m3=2022-12-13T00%3A00%3A00.000Z¶m4%5B0%5D=1¶m4%5B1%5D=2¶m4%5B2%5D=3¶m4%5B3%5D=4¶m5%5B0%5D=a¶m5%5B1%5D=b¶m5%5B2%5D=c¶m5%5B3%5D=0¶m6%5Btest%5D%5B0%5D%5Ba%5D=b¶m6%5Btest%5D%5B0%5D%5Bc%5D=d¶m6%5Btest%5D%5B1%5D%5Ba1%5D=b1¶m6%5Btest%5D%5B1%5D%5Bc1%5D=d1¶m6%5Btest2%5D%5B0%5D%5Ba2%5D=b2¶m6%5Btest2%5D%5B0%5D%5Bc3%5D=d3¶m6%5Btest2%5D%5B1%5D%5Ba4%5D=b4¶m6%5Btest2%5D%5B1%5D%5Bc5%5D=d5'; expect(bx24.getHttpString(testObj)).toEqual(urlStr); }); test('Stringify auto Str', async () => { const testObj=JSON.parse(JSON.stringify(exampleObj)); testObj.param7=JSON.parse(JSON.stringify(testObj)); const autoStr='param1=1¶m2=2¶m3=2022-12-13T00%3A00%3A00.000Z¶m4%5B0%5D=1¶m4%5B1%5D=2¶m4%5B2%5D=3¶m4%5B3%5D=4¶m5%5B0%5D=a¶m5%5B1%5D=b¶m5%5B2%5D=c¶m5%5B3%5D=0¶m6%5Btest%5D%5B0%5D%5Ba%5D=b¶m6%5Btest%5D%5B0%5D%5Bc%5D=d¶m6%5Btest%5D%5B1%5D%5Ba1%5D=b1¶m6%5Btest%5D%5B1%5D%5Bc1%5D=d1¶m6%5Btest2%5D%5B0%5D%5Ba2%5D=b2¶m6%5Btest2%5D%5B0%5D%5Bc3%5D=d3¶m6%5Btest2%5D%5B1%5D%5Ba4%5D=b4¶m6%5Btest2%5D%5B1%5D%5Bc5%5D=d5¶m7%5Bparam1%5D=1¶m7%5Bparam2%5D=2¶m7%5Bparam3%5D=2022-12-13T00%3A00%3A00.000Z¶m7%5Bparam4%5D%5B0%5D=1¶m7%5Bparam4%5D%5B1%5D=2¶m7%5Bparam4%5D%5B2%5D=3¶m7%5Bparam4%5D%5B3%5D=4¶m7%5Bparam5%5D%5B0%5D=a¶m7%5Bparam5%5D%5B1%5D=b¶m7%5Bparam5%5D%5B2%5D=c¶m7%5Bparam5%5D%5B3%5D=0¶m7%5Bparam6%5D%5Btest%5D%5B0%5D%5Ba%5D=b¶m7%5Bparam6%5D%5Btest%5D%5B0%5D%5Bc%5D=d¶m7%5Bparam6%5D%5Btest%5D%5B1%5D%5Ba1%5D=b1¶m7%5Bparam6%5D%5Btest%5D%5B1%5D%5Bc1%5D=d1¶m7%5Bparam6%5D%5Btest2%5D%5B0%5D%5Ba2%5D=b2¶m7%5Bparam6%5D%5Btest2%5D%5B0%5D%5Bc3%5D=d3¶m7%5Bparam6%5D%5Btest2%5D%5B1%5D%5Ba4%5D=b4¶m7%5Bparam6%5D%5Btest2%5D%5B1%5D%5Bc5%5D=d5'; expect(bx24.getHttpString(testObj)).toEqual(autoStr); });