-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathGetPicture.test.js
More file actions
46 lines (36 loc) · 1.13 KB
/
GetPicture.test.js
File metadata and controls
46 lines (36 loc) · 1.13 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
const sinon = require("sinon");
const chai = require("chai");
const chaiAsPromised = require("chai-as-promised");
chai.use(chaiAsPromised);
const expect = chai.expect;
const request = require("./request");
const GetPicture = require("./GetPicture");
const { Blob } = require('buffer');
const {isNode} = require("browser-or-node");
let stream;
if (isNode) {
stream = require('stream').Readable;
} else {
stream = ReadableStream;
}
function superFakeBlob() {
return {
stream: () => new stream([]),
}
}
describe("GetPicture", () => {
let sandbox = sinon.createSandbox();
afterEach(() => sandbox.restore());
it("should return a stream", async () => {
const stub = sandbox.stub(request, "fetch")
.resolves({ok: true, blob: () => superFakeBlob()});
const res = await GetPicture("token", "https://notarealwebsite", "1337");
expect(res).to.be.an.instanceOf(stream);
});
it("should error", async () => {
const stub = sandbox.stub(request, "fetch")
.resolves({ok: false, blob: () => superFakeBlob()});
return expect(GetPicture("token", "https://notarealwebsite", "1337"))
.to.be.rejected;
});
});