test(post): initial

This commit is contained in:
Stephan Bönnemann 2015-07-16 17:30:14 +02:00
parent 431babb42e
commit ed05101a61
3 changed files with 69 additions and 0 deletions

3
test/mocks/git-head.js Normal file
View File

@ -0,0 +1,3 @@
module.exports = function (cb) {
cb(null, 'bar')
}

6
test/mocks/github.js Normal file
View File

@ -0,0 +1,6 @@
module.exports = () => ({
authenticate: () => true,
releases: {
createRelease: (release, cb) => cb(null)
}
})

60
test/specs/post.js Normal file
View 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()
})
})
})