0
0
mirror of https://github.com/renovatebot/renovate.git synced 2024-12-22 13:38:32 +00:00
renovatebot_renovate/lib/util/http/gerrit.spec.ts
Markus Schulz b2422d86fd
feat: Support for Platform "Gerrit" (#18961)
Co-authored-by: HonkingGoose <34918129+HonkingGoose@users.noreply.github.com>
Co-authored-by: Michael Kriese <michael.kriese@visualon.de>
Co-authored-by: Rhys Arkins <rhys@arkins.net>
2023-12-29 17:55:25 +00:00

75 lines
1.9 KiB
TypeScript

import * as httpMock from '../../../test/http-mock';
import { GerritHttp, setBaseUrl } from './gerrit';
const baseUrl = 'https://gerrit.example.com/';
describe('util/http/gerrit', () => {
let api: GerritHttp;
beforeEach(() => {
api = new GerritHttp();
setBaseUrl(baseUrl);
});
it.each(['some-url/', baseUrl + 'some-url/'])('get %p', async (pathOrUrl) => {
const body = 'body result';
httpMock
.scope(baseUrl)
.get(/some-url\/$/)
.reply(200, body, { 'content-type': 'text/plain;charset=utf-8' });
const res = await api.get(pathOrUrl);
expect(res.body).toEqual(body);
});
it('getJson', async () => {
const body = { key: 'value' };
httpMock
.scope(baseUrl)
.get('/some-url')
.matchHeader('a', 'b')
.reply(200, gerritResult(JSON.stringify(body)), {
'content-type': 'application/json;charset=utf-8',
});
const res = await api
.getJson('some-url', { headers: { a: 'b' } })
.then((res) => res.body);
return expect(res).toEqual(body);
});
it('postJson', () => {
httpMock
.scope(baseUrl)
.post('/some-url')
.matchHeader('content-Type', 'application/json')
.reply(200, gerritResult('{"res":"success"}'), {
'content-type': 'application/json;charset=utf-8',
});
return expect(
api
.postJson('some-url', { body: { key: 'value' } })
.then((res) => res.body),
).resolves.toEqual({ res: 'success' });
});
it('putJson', () => {
httpMock
.scope(baseUrl)
.put('/some-url')
.matchHeader('content-Type', 'application/json')
.reply(200, gerritResult('{"res":"success"}'), {
'content-type': 'application/json;charset=utf-8',
});
return expect(
api.putJson('some-url', { body: { key: 'value' } }).then((r) => r.body),
).resolves.toEqual({ res: 'success' });
});
});
function gerritResult(body: string): string {
return `)]}'\n${body}`;
}