test(post): initial
This commit is contained in:
parent
431babb42e
commit
ed05101a61
3
test/mocks/git-head.js
Normal file
3
test/mocks/git-head.js
Normal file
@ -0,0 +1,3 @@
|
||||
module.exports = function (cb) {
|
||||
cb(null, 'bar')
|
||||
}
|
6
test/mocks/github.js
Normal file
6
test/mocks/github.js
Normal file
@ -0,0 +1,6 @@
|
||||
module.exports = () => ({
|
||||
authenticate: () => true,
|
||||
releases: {
|
||||
createRelease: (release, cb) => cb(null)
|
||||
}
|
||||
})
|
60
test/specs/post.js
Normal file
60
test/specs/post.js
Normal file
@ -0,0 +1,60 @@
|
||||
const { defaults } = require('lodash')
|
||||
const test = require('tap').test
|
||||
const proxyquire = require('proxyquire')
|
||||
|
||||
const post = proxyquire('../../dist/post', {
|
||||
'git-head': require('../mocks/git-head'),
|
||||
github: require('../mocks/github')
|
||||
})
|
||||
|
||||
const pkg = {
|
||||
version: '1.0.0',
|
||||
repository: {
|
||||
url: 'http://github.com/whats/up.git'
|
||||
}
|
||||
}
|
||||
|
||||
const plugins = {
|
||||
generateNotes: (pkg, cb) => cb(null, 'the log')
|
||||
}
|
||||
|
||||
const defaultRelease = {
|
||||
owner: 'whats',
|
||||
repo: 'up',
|
||||
name: 'v1.0.0',
|
||||
tag_name: 'v1.0.0',
|
||||
target_commitish: 'bar',
|
||||
body: 'the log'
|
||||
}
|
||||
|
||||
test('full post run', (t) => {
|
||||
t.test('in debug mode w/o token', (tt) => {
|
||||
post(pkg, {debug: true}, plugins, (err, published, release) => {
|
||||
tt.error(err)
|
||||
tt.is(published, false)
|
||||
tt.match(release, defaults({draft: true}, defaultRelease))
|
||||
|
||||
tt.end()
|
||||
})
|
||||
})
|
||||
|
||||
t.test('in debug mode w token', (tt) => {
|
||||
post(pkg, {debug: true, 'github-token': 'yo'}, plugins, (err, published, release) => {
|
||||
tt.error(err)
|
||||
tt.is(published, true)
|
||||
tt.match(release, defaults({draft: true}, defaultRelease))
|
||||
|
||||
tt.end()
|
||||
})
|
||||
})
|
||||
|
||||
t.test('production', (tt) => {
|
||||
post(pkg, {'github-token': 'yo'}, plugins, (err, published, release) => {
|
||||
tt.error(err)
|
||||
tt.is(published, true)
|
||||
tt.match(release, defaultRelease)
|
||||
|
||||
tt.end()
|
||||
})
|
||||
})
|
||||
})
|
Loading…
x
Reference in New Issue
Block a user