test(pre): initial cli/integration suite
This commit is contained in:
parent
6d84b66c05
commit
c6f95e4870
11
package.json
11
package.json
@ -29,12 +29,12 @@
|
|||||||
"mkdirp": "^0.5.1",
|
"mkdirp": "^0.5.1",
|
||||||
"nixt": "^0.4.1",
|
"nixt": "^0.4.1",
|
||||||
"nock": "^2.5.0",
|
"nock": "^2.5.0",
|
||||||
"nyc": "^2.3.0",
|
|
||||||
"npm-registry-couchapp": "^2.6.11",
|
"npm-registry-couchapp": "^2.6.11",
|
||||||
|
"nyc": "^3.0.0",
|
||||||
"proxyquire": "^1.5.0",
|
"proxyquire": "^1.5.0",
|
||||||
"rimraf": "^2.4.0",
|
"rimraf": "^2.4.0",
|
||||||
"standard": "^4.2.1",
|
"standard": "^4.2.1",
|
||||||
"tap": "^1.2.0"
|
"tap": "^1.3.1"
|
||||||
},
|
},
|
||||||
"homepage": "https://github.com/semantic-release/core#readme",
|
"homepage": "https://github.com/semantic-release/core#readme",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
@ -59,9 +59,10 @@
|
|||||||
"build:tests": "rimraf .test && mkdirp .test && babel test --out-dir .test",
|
"build:tests": "rimraf .test && mkdirp .test && babel test --out-dir .test",
|
||||||
"coverage": "nyc report",
|
"coverage": "nyc report",
|
||||||
"coverage:upload": "npm run coverage -- --reporter=lcovonly && coveralls < coverage/lcov.info",
|
"coverage:upload": "npm run coverage -- --reporter=lcovonly && coveralls < coverage/lcov.info",
|
||||||
"pretest:suite": "npm run build && npm run build:tests",
|
"pretest:unit": "npm run build && npm run build:tests",
|
||||||
"test": "npm run test:style && npm run test:suite",
|
"test": "npm run test:style && npm run test:unit && npm run test:integration",
|
||||||
|
"test:integration": "tap --no-cov .test/scenarios/*.js",
|
||||||
"test:style": "standard",
|
"test:style": "standard",
|
||||||
"test:suite": "nyc tap --no-cov .test/{scenarios,specs}/*.js"
|
"test:unit": "nyc tap --no-cov .test/specs/*.js"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
89
test/scenarios/pre.js
Normal file
89
test/scenarios/pre.js
Normal file
@ -0,0 +1,89 @@
|
|||||||
|
const { join } = require('path')
|
||||||
|
|
||||||
|
const { test, tearDown } = require('tap')
|
||||||
|
const rimraf = require('rimraf')
|
||||||
|
|
||||||
|
const registry = require('../registry')
|
||||||
|
const testModule = require('../lib/test-module')
|
||||||
|
const baseScenario = require('../lib/base-scenario')
|
||||||
|
|
||||||
|
test('change version', (t) => {
|
||||||
|
t.plan(7)
|
||||||
|
|
||||||
|
registry.start((err) => {
|
||||||
|
t.error(err, 'registry started')
|
||||||
|
if (err) t.bailout('registry not started')
|
||||||
|
|
||||||
|
testModule('change-version', (err, cwd) => {
|
||||||
|
t.error(err, 'test-module created')
|
||||||
|
if (err) t.bailout('test-module not created')
|
||||||
|
|
||||||
|
t.test('no version', (tt) => {
|
||||||
|
tt.plan(1)
|
||||||
|
|
||||||
|
baseScenario(cwd, registry.uri)
|
||||||
|
.run('node ../../../bin/semantic-release.js pre')
|
||||||
|
.stderr(/ENOCHANGE/)
|
||||||
|
.code(1)
|
||||||
|
.end(tt.error)
|
||||||
|
})
|
||||||
|
|
||||||
|
t.test('initial version', (tt) => {
|
||||||
|
tt.plan(1)
|
||||||
|
|
||||||
|
baseScenario(cwd, registry.uri)
|
||||||
|
.exec('git commit -m "feat: initial" --allow-empty')
|
||||||
|
.exec('node ../../../bin/semantic-release.js pre')
|
||||||
|
.run('npm publish')
|
||||||
|
.stdout(/1\.0\.0/)
|
||||||
|
.code(0)
|
||||||
|
.end(tt.error)
|
||||||
|
})
|
||||||
|
|
||||||
|
t.test('patch version', (tt) => {
|
||||||
|
tt.plan(1)
|
||||||
|
|
||||||
|
baseScenario(cwd, registry.uri)
|
||||||
|
.exec('git commit -m "fix: foo" --allow-empty')
|
||||||
|
.exec('node ../../../bin/semantic-release.js pre')
|
||||||
|
.run('npm publish')
|
||||||
|
.stdout(/1\.0\.1/)
|
||||||
|
.code(0)
|
||||||
|
.end(tt.error)
|
||||||
|
})
|
||||||
|
|
||||||
|
t.test('feature version', (tt) => {
|
||||||
|
tt.plan(1)
|
||||||
|
|
||||||
|
baseScenario(cwd, registry.uri)
|
||||||
|
.exec('git commit -m "feat: foo" --allow-empty')
|
||||||
|
.exec('node ../../../bin/semantic-release.js pre')
|
||||||
|
.run('npm publish')
|
||||||
|
.code(0)
|
||||||
|
.stdout(/1\.1\.0/)
|
||||||
|
.end(tt.error)
|
||||||
|
})
|
||||||
|
|
||||||
|
t.test('breaking version', (tt) => {
|
||||||
|
tt.plan(1)
|
||||||
|
|
||||||
|
baseScenario(cwd, registry.uri)
|
||||||
|
.exec('git commit -m "feat: foo\n\n BREAKING CHANGE: bar" --allow-empty')
|
||||||
|
.exec('node ../../../bin/semantic-release.js pre')
|
||||||
|
.run('npm publish')
|
||||||
|
.code(0)
|
||||||
|
.stdout(/2\.0\.0/)
|
||||||
|
.end(tt.error)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
tearDown(() => {
|
||||||
|
function cb (err) {
|
||||||
|
if (err) console.log(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
rimraf(join(__dirname, '../tmp'), cb)
|
||||||
|
registry.stop(cb)
|
||||||
|
})
|
Loading…
x
Reference in New Issue
Block a user