2018-12-27 13:11:07 +00:00
|
|
|
const expect = require('chai').expect
|
|
|
|
const sinon = require('sinon')
|
|
|
|
const Joi = require('joi')
|
2018-12-20 17:19:41 +00:00
|
|
|
|
2018-12-27 13:11:07 +00:00
|
|
|
const sample = require('./sample')
|
2019-02-06 23:05:52 +00:00
|
|
|
const schema = require('../src/schema')
|
2018-12-20 17:19:41 +00:00
|
|
|
|
2019-02-06 23:05:52 +00:00
|
|
|
let build
|
2018-12-20 17:19:41 +00:00
|
|
|
|
|
|
|
describe('Schema', () => {
|
|
|
|
beforeEach(() => {
|
|
|
|
/* refresh for every test */
|
2018-12-20 21:47:55 +00:00
|
|
|
build = Object.assign({}, sample.BUILD)
|
2018-12-20 17:19:41 +00:00
|
|
|
})
|
2022-11-23 15:10:43 +00:00
|
|
|
|
2018-12-20 17:51:19 +00:00
|
|
|
describe('id', () => {
|
2021-08-16 17:18:40 +00:00
|
|
|
it('can be a string', () => {
|
|
|
|
let rval = schema.validate(build)
|
|
|
|
expect(rval.value).to.eql(build)
|
2018-12-20 17:51:19 +00:00
|
|
|
})
|
|
|
|
|
2021-08-16 17:18:40 +00:00
|
|
|
it('can be a number', () => {
|
2018-12-20 17:51:19 +00:00
|
|
|
build.id = 123
|
2021-08-16 17:18:40 +00:00
|
|
|
let rval = schema.validate(build)
|
|
|
|
expect(rval.value).to.eql(build)
|
2018-12-20 17:51:19 +00:00
|
|
|
})
|
|
|
|
|
|
|
|
it('can\'t be null', () => {
|
|
|
|
build.id = null
|
2021-08-16 17:18:40 +00:00
|
|
|
let rval = schema.validate(build)
|
|
|
|
expect(rval.error.message).to.eq(
|
|
|
|
'"id" must be one of [number, string]'
|
|
|
|
)
|
2018-12-20 17:51:19 +00:00
|
|
|
})
|
|
|
|
})
|
|
|
|
|
2018-12-20 17:46:49 +00:00
|
|
|
describe('commit', () => {
|
2021-08-16 17:18:40 +00:00
|
|
|
it('has to be a commit', () => {
|
|
|
|
let rval = schema.validate(build)
|
|
|
|
expect(rval.value).to.eql(build)
|
2018-12-20 17:46:49 +00:00
|
|
|
})
|
|
|
|
|
|
|
|
it('can\'t be a null', () => {
|
|
|
|
build.commit = null
|
2021-08-16 17:18:40 +00:00
|
|
|
let rval = schema.validate(build)
|
|
|
|
expect(rval.error.message).to.eq(
|
|
|
|
'"commit" must be a string'
|
|
|
|
)
|
2018-12-20 17:46:49 +00:00
|
|
|
})
|
|
|
|
|
2018-12-20 17:51:19 +00:00
|
|
|
it('can\'t be a number', () => {
|
2018-12-20 17:46:49 +00:00
|
|
|
build.commit = 1
|
2021-08-16 17:18:40 +00:00
|
|
|
let rval = schema.validate(build)
|
|
|
|
expect(rval.error.message).to.eq(
|
|
|
|
'"commit" must be a string'
|
|
|
|
)
|
2019-02-06 21:50:48 +00:00
|
|
|
})
|
|
|
|
})
|
|
|
|
|
2018-12-20 17:19:41 +00:00
|
|
|
describe('pkg_url', () => {
|
2021-08-16 17:18:40 +00:00
|
|
|
it('has to be a URL', () => {
|
|
|
|
let rval = schema.validate(build)
|
|
|
|
expect(rval.value).to.eql(build)
|
2018-12-20 17:19:41 +00:00
|
|
|
})
|
|
|
|
|
2021-08-16 17:18:40 +00:00
|
|
|
it('can be a null', () => {
|
2018-12-20 17:19:41 +00:00
|
|
|
build.pkg_url = null
|
2021-08-16 17:18:40 +00:00
|
|
|
let rval = schema.validate(build)
|
|
|
|
expect(rval.value).to.eql(build)
|
2018-12-20 17:19:41 +00:00
|
|
|
})
|
|
|
|
|
2018-12-20 17:51:19 +00:00
|
|
|
it('can\'t be a number', () => {
|
2018-12-20 17:19:41 +00:00
|
|
|
build.pkg_url = 1
|
2021-08-16 17:18:40 +00:00
|
|
|
let rval = schema.validate(build)
|
|
|
|
expect(rval.error.message).to.eq(
|
|
|
|
'"pkg_url" must be a string'
|
|
|
|
)
|
2018-12-20 17:19:41 +00:00
|
|
|
})
|
|
|
|
})
|
|
|
|
})
|