mirror of
https://github.com/shivammathur/setup-php.git
synced 2025-08-19 20:14:44 +07:00
Refactor utils.fetch to a module and mock it with nock
Add redirect support in utils.fetch
This commit is contained in:
39
__tests__/fetch.test.ts
Normal file
39
__tests__/fetch.test.ts
Normal file
@ -0,0 +1,39 @@
|
||||
import * as fetch from '../src/fetch';
|
||||
import nock = require('nock');
|
||||
|
||||
it('checking fetch', async () => {
|
||||
const host_url = 'https://example.com';
|
||||
const manifest_url = host_url + '/manifest';
|
||||
const ping_url = host_url + '/ping';
|
||||
|
||||
nock(host_url)
|
||||
.get('/manifest')
|
||||
.reply(200, {latest: 'latest'})
|
||||
.get('/manifest', '', {
|
||||
reqheaders: {authorization: 'Bearer invalid_token'}
|
||||
})
|
||||
.reply(401, {error: '401: Unauthorized'})
|
||||
.get('/ping')
|
||||
.twice()
|
||||
.reply(301, undefined, {
|
||||
Location: host_url + '/pong'
|
||||
})
|
||||
.get('/pong')
|
||||
.reply(200, 'pong');
|
||||
|
||||
let response: Record<string, string> = await fetch.fetch(manifest_url);
|
||||
expect(response.error).toBe(undefined);
|
||||
expect(response.data).toContain('latest');
|
||||
|
||||
response = await fetch.fetch(ping_url, '', 1);
|
||||
expect(response.error).toBe(undefined);
|
||||
expect(response.data).toContain('pong');
|
||||
|
||||
response = await fetch.fetch(ping_url, '', 0);
|
||||
expect(response.error).toBe('301: Redirect error');
|
||||
expect(response.data).toBe(undefined);
|
||||
|
||||
response = await fetch.fetch(manifest_url, 'invalid_token');
|
||||
expect(response.error).not.toBe(undefined);
|
||||
expect(response.data).toBe(undefined);
|
||||
});
|
Reference in New Issue
Block a user