* fix(gitlab): use oauth header, add private repo test * tests(gitlab): fix nock header match on unit test
48 lines
1.2 KiB
JavaScript
48 lines
1.2 KiB
JavaScript
import { expect } from 'chai'
|
|
import nock from 'nock'
|
|
import { cleanUpNockAfterEach, defaultContext } from '../test-helpers.js'
|
|
import GitLabTag from './gitlab-tag.service.js'
|
|
|
|
describe('GitLabTag', function () {
|
|
describe('auth', function () {
|
|
cleanUpNockAfterEach()
|
|
|
|
const fakeToken = 'abc123'
|
|
const config = {
|
|
public: {
|
|
services: {
|
|
gitlab: {
|
|
authorizedOrigins: ['https://gitlab.com'],
|
|
},
|
|
},
|
|
},
|
|
private: {
|
|
gitlab_token: fakeToken,
|
|
},
|
|
}
|
|
|
|
it('sends the auth information as configured', async function () {
|
|
const scope = nock('https://gitlab.com/')
|
|
.get('/api/v4/projects/foo%2Fbar/repository/tags?order_by=updated')
|
|
// This ensures that the expected credentials are actually being sent with the HTTP request.
|
|
// Without this the request wouldn't match and the test would fail.
|
|
.matchHeader('Authorization', `Bearer ${fakeToken}`)
|
|
.reply(200, [{ name: '1.9' }])
|
|
|
|
expect(
|
|
await GitLabTag.invoke(
|
|
defaultContext,
|
|
config,
|
|
{ project: 'foo/bar' },
|
|
{}
|
|
)
|
|
).to.deep.equal({
|
|
message: 'v1.9',
|
|
color: 'blue',
|
|
})
|
|
|
|
scope.done()
|
|
})
|
|
})
|
|
})
|