102 lines
3.3 KiB
TypeScript
102 lines
3.3 KiB
TypeScript
import 'typings-test'
|
|
import * as should from 'should'
|
|
import path = require('path')
|
|
import * as beautylog from 'beautylog'
|
|
|
|
// set up environment
|
|
process.env.CI_BUILD_REPO = 'https://yyyyyy:xxxxxxxx@gitlab.com/mygroup/myrepo.git'
|
|
process.env.NPMCI_SSHKEY_1 = 'hostString|somePrivKey|##'
|
|
process.env.NPMTS_TEST = 'true'
|
|
process.cwd = () => {
|
|
return path.join(__dirname,'assets/')
|
|
}
|
|
|
|
// require NPMCI files
|
|
import npmci = require('../dist/index')
|
|
import NpmciBuildDocker = require('../dist/npmci.build.docker')
|
|
import NpmciPublish = require('../dist/npmci.publish')
|
|
import NpmciTest = require('../dist/npmci.test')
|
|
import NpmciSsh = require('../dist/npmci.ssh')
|
|
|
|
|
|
let dockerfile1: NpmciBuildDocker.Dockerfile
|
|
let dockerfile2: NpmciBuildDocker.Dockerfile
|
|
let sortableArray: NpmciBuildDocker.Dockerfile[]
|
|
|
|
describe('NPMCI',function(){
|
|
describe('build.docker',function(){
|
|
it('should return valid Dockerfiles',function(){
|
|
dockerfile1 = new NpmciBuildDocker.Dockerfile({filePath: './Dockerfile', read: true})
|
|
dockerfile2 = new NpmciBuildDocker.Dockerfile({filePath: './Dockerfile_sometag1', read: true})
|
|
should(dockerfile1.version).equal('latest')
|
|
should(dockerfile2.version).equal('sometag1')
|
|
})
|
|
|
|
it('should read a directory of Dockerfiles',function(done){
|
|
NpmciBuildDocker.readDockerfiles()
|
|
.then(function(readDockerfilesArrayArg: NpmciBuildDocker.Dockerfile[]){
|
|
should(readDockerfilesArrayArg[1].version).equal('sometag1')
|
|
sortableArray = readDockerfilesArrayArg
|
|
done()
|
|
})
|
|
})
|
|
|
|
it('should sort an array of Dockerfiles',function(done){
|
|
NpmciBuildDocker.sortDockerfiles(sortableArray)
|
|
.then(function(sortedArrayArg: NpmciBuildDocker.Dockerfile[]){
|
|
beautylog.success('final result')
|
|
console.log(sortedArrayArg)
|
|
done()
|
|
})
|
|
})
|
|
|
|
it('should correctly chain Dockerfile handling', function(done){
|
|
NpmciBuildDocker.build()
|
|
.then(() => {
|
|
done()
|
|
})
|
|
})
|
|
})
|
|
|
|
describe('.publish.docker',function(){
|
|
it('should publish all built Dockerfiles',function(done){
|
|
NpmciPublish.publish('docker')
|
|
.then(() => {
|
|
done()
|
|
})
|
|
})
|
|
})
|
|
|
|
describe('.test.npm',function(){
|
|
it('should source nvm using bash and install a specific node version, then test it',function(done){
|
|
NpmciTest.test('legacy')
|
|
.then(() => {
|
|
return NpmciTest.test('lts')
|
|
})
|
|
.then(() => {
|
|
return NpmciTest.test('stable')
|
|
})
|
|
.then(() => {
|
|
done()
|
|
})
|
|
})
|
|
})
|
|
|
|
describe('test.docker',function(){
|
|
it('should test dockerfiles',function(done){
|
|
NpmciTest.test('docker')
|
|
.then(() => {
|
|
done()
|
|
})
|
|
})
|
|
});
|
|
describe('npmci prepare ssh',function(){
|
|
it('should pick up SSH keys',function(done){
|
|
NpmciSsh.ssh()
|
|
.then(() => {
|
|
done()
|
|
})
|
|
})
|
|
})
|
|
})
|