Я хочу протестировать API Dropbox, используя nock
. Моя проблема связана с функцией определения объема .isDone()
, которая определяет, оправдались ли ожидания.
В файле console.log, добавленном в nock.post()
, отображается соответствие как истина:
matching https://api.dropboxapi.com:443/2/files/create_folder_v2 to POST https://api.dropboxapi.com:443/2/files/create_folder_v2: true
Однако expect(scope.isDone()).to.be.true;
не удается.
Как определить, какое ожиданиене встретились?
import { v4 } from 'uuid';
const request = require('request');
import nock = require('nock');
import { expect } from 'chai';
const accessToken = v4();
const folderName = v4();
const folderPath = `/${folderName}`;
let params = {
'path': folderPath,
'autorename': false
};
describe('Run Dropbox Archive Tests', function() {
it('Create a Random Folder using Request', async function() {
const scope = nock('https://api.dropboxapi.com/2', {
reqheaders: {
'authorization': `Bearer ${accessToken}`
}
})
.log(console.log)
.post('/files/create_folder_v2', params)
.reply(200, (uri, requestBody) => {
return {
metadata: {
name: folderName,
path_lower: folderPath,
path_display: folderPath,
id: `id:${v4()}`
}
};
});
request.post({
url: 'https://api.dropboxapi.com/2/files/create_folder_v2',
headers: {
authorization: `Bearer ${accessToken}`
},
json: params
}, function(err, res) {
if (err) {
console.error(`err: ${JSON.stringify(err, null, 2)}`);
} else {
console.log(`res: ${JSON.stringify(res, null, 2)}`);
}
});
expect(scope.isDone()).to.be.true;
});
});
Ответ от request.post
следующий:
res: {
"statusCode": 200,
"body": {
"metadata": {
"name": "f303bd77-792a-44b5-844b-5ee29a5d4d44",
"path_lower": "/f303bd77-792a-44b5-844b-5ee29a5d4d44",
"path_display": "/f303bd77-792a-44b5-844b-5ee29a5d4d44",
"id": "id:5760a2b4-73e2-4c85-8d2a-17450bd70e69"
}
},
"headers": {
"content-type": "application/json"
},
"request": {
"uri": {
"protocol": "https:",
"slashes": true,
"auth": null,
"host": "api.dropboxapi.com",
"port": 443,
"hostname": "api.dropboxapi.com",
"hash": null,
"search": null,
"query": null,
"pathname": "/2/files/create_folder_v2",
"path": "/2/files/create_folder_v2",
"href": "https://api.dropboxapi.com/2/files/create_folder_v2"
},
"method": "POST",
"headers": {
"authorization": "Bearer b7f78d23-7033-4c7b-ba24-571ca97a2b42",
"accept": "application/json",
"content-type": "application/json",
"content-length": 67
}
}
}
Спасибо, очень признателен за любую помощь.