test(postpublish): initial scenario
This commit is contained in:
parent
7380d586ee
commit
3799ad0cb6
@ -6,3 +6,4 @@ var createModule = require('./lib/create-module')
|
|||||||
|
|
||||||
require('./scenarios/install')(test, createModule)
|
require('./scenarios/install')(test, createModule)
|
||||||
require('./scenarios/prepublish')(test, createModule)
|
require('./scenarios/prepublish')(test, createModule)
|
||||||
|
require('./scenarios/postpublish')(test, createModule)
|
||||||
|
@ -7,10 +7,10 @@ var efh = require('error-first-handler')
|
|||||||
var defaults = require('lodash.defaults')
|
var defaults = require('lodash.defaults')
|
||||||
var uid = require('nano-uid')()
|
var uid = require('nano-uid')()
|
||||||
|
|
||||||
module.exports = function (pkg) {
|
module.exports = function (input) {
|
||||||
var cb = Array.prototype.pop.call(arguments)
|
var cb = Array.prototype.pop.call(arguments)
|
||||||
uid.generate(5, efh(cb)(function (id) {
|
uid.generate(5, efh(cb)(function (id) {
|
||||||
var pkg = defaults((typeof pkg === 'object' ? pkg : {}), {
|
var pkg = defaults((typeof input === 'object' ? input : {}), {
|
||||||
name: id,
|
name: id,
|
||||||
version: '0.0.0',
|
version: '0.0.0',
|
||||||
devDependencies: {
|
devDependencies: {
|
||||||
|
57
tests/scenarios/postpublish.js
Normal file
57
tests/scenarios/postpublish.js
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
'use strict'
|
||||||
|
|
||||||
|
var efh = require('error-first-handler')
|
||||||
|
var GitHubApi = require('github')
|
||||||
|
var nixt = require('nixt')
|
||||||
|
|
||||||
|
var github = new GitHubApi({
|
||||||
|
version: '3.0.0',
|
||||||
|
port: 4343,
|
||||||
|
protocol: 'http',
|
||||||
|
host: '127.0.0.1'
|
||||||
|
})
|
||||||
|
|
||||||
|
github.authenticate({
|
||||||
|
type: 'oauth',
|
||||||
|
token: '***'
|
||||||
|
})
|
||||||
|
|
||||||
|
module.exports = function (test, createModule) {
|
||||||
|
createModule({
|
||||||
|
version: '2.0.0',
|
||||||
|
repository: {
|
||||||
|
type: 'git',
|
||||||
|
url: 'http://github.com/user/repo'
|
||||||
|
}
|
||||||
|
}, efh()(function (name, cwd) {
|
||||||
|
test('postpublish', function (t) {
|
||||||
|
t.test('publish new version to github releases', function (t) {
|
||||||
|
t.plan(1)
|
||||||
|
|
||||||
|
nixt()
|
||||||
|
.cwd(cwd)
|
||||||
|
.env('CI', true)
|
||||||
|
.env('GH_URL', 'http://127.0.0.1:4343/')
|
||||||
|
.env('GH_TOKEN', '***')
|
||||||
|
.exec('git commit --allow-empty -m "feat(cool): the next big thing"')
|
||||||
|
.run('npm run postpublish')
|
||||||
|
.code(0)
|
||||||
|
.stdout(/> semantic-release post\n\nGenerating changelog from.*\nParsed/m)
|
||||||
|
.end(function(err) {
|
||||||
|
t.error(err, 'nixt')
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
t.test('correct data published', function (t) {
|
||||||
|
t.plan(4)
|
||||||
|
|
||||||
|
github.releases.getRelease({ owner: 'user', repo: 'repo', id: 1}, function (err, res) {
|
||||||
|
t.error(err, 'github')
|
||||||
|
t.is(res.tag_name, 'v2.0.0', 'version')
|
||||||
|
t.is(res.author.login, 'user', 'user')
|
||||||
|
t.ok(/\n\n\n#### Features\n\n\* \*\*cool:\*\* the next big thing/.test(res.body), 'body')
|
||||||
|
})
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}))
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user