test('handle request', (t) => { let fetch = FetchMock.sandbox() let { app, server } = makeHttpServer(config) server.authTimestampCache = new MockAuthTimestampCache() let sk = testPairs[1] let fileContents = sk.toWIF() let blob = Buffer.from(fileContents) let address = ecPairToAddress(sk) let path = `/store/${address}/helloWorld` let listPath = `/list-files/${address}` let prefix = '' let authorizationHeader = '' request(app).get('/hub_info/') .expect(200) .then((response) => { prefix = JSON.parse(response.text).read_url_prefix const challenge = JSON.parse(response.text).challenge_text const authPart = auth.V1Authentication.makeAuthPart(sk, challenge) return `bearer ${authPart}` }) .then((authorization) => { authorizationHeader = authorization return request(app).post(path) .set('Content-Type', 'application/octet-stream') .set('Authorization', authorization) .send(blob) .expect(202) }) .then((response) => { if (mockTest) { addMockFetches(fetch, prefix, dataMap) } let url = JSON.parse(response.text).publicURL t.ok(url, 'Must return URL') console.log(url) fetch(url) .then(resp => resp.text()) .then(text => t.equal(text, fileContents, 'Contents returned must be correct')) }) .catch((err: any) => t.false(true, `Unexpected err: ${err}`)) .then(() => request(app).post(listPath) .set('Content-Type', 'application/json') .set('Authorization', authorizationHeader) .expect(202) ) .then((filesResponse) => { const files = JSON.parse(filesResponse.text) t.equal(files.entries.length, 1, 'Should return one file') t.equal(files.entries[0], 'helloWorld', 'Should be helloworld') t.ok(files.hasOwnProperty('page'), 'Response is missing a page') }) .then(() => { fetch.restore() t.end() }) })
.mock("http://test.com", 200) .catch(503); fetchMock .mock("http://test.com", 200) .spy(); const myMatcher: fetchMock.MockMatcherFunction = ( url: string, opts: fetchMock.MockRequest ) => true; fetchMock.flush().then(resolved => resolved.forEach(console.log)); fetchMock.flush().catch(r => r); fetchMock.get("http://test.com", { body: 'abc', includeContentLength: false }); fetchMock.get("http://test.com", { body: 'abc', redirectUrl: "http://example.org" }); const sandbox = fetchMock.sandbox(); sandbox.get("http://test.com", { body: 'abc', redirectUrl: "http://example.org" });