serverless/test/unit/lib/plugins/rollback.test.js
2024-05-29 11:51:04 -04:00

59 lines
1.8 KiB
JavaScript

'use strict'
const expect = require('chai').expect
const Rollback = require('../../../../lib/plugins/rollback')
const Serverless = require('../../../../lib/serverless')
describe('Rollback', () => {
let rollback
let serverless
beforeEach(() => {
serverless = new Serverless({ commands: [], options: {} })
rollback = new Rollback(serverless)
})
describe('#constructor()', () => {
describe('when dealing with normal rollbacks', () => {
it('should have the command "rollback"', () => {
// eslint-disable-next-line no-unused-expressions
expect(rollback.commands.rollback).to.not.be.undefined
})
it('should have a lifecycle events initialize and rollback', () => {
expect(rollback.commands.rollback.lifecycleEvents).to.deep.equal([
'initialize',
'rollback',
])
})
it('should not have a required option timestamp', () => {
// eslint-disable-next-line no-unused-expressions
expect(rollback.commands.rollback.options.timestamp.required).to.be
.false
})
})
describe('when dealing with function rollbacks', () => {
it('should have the command "rollback function"', () => {
// eslint-disable-next-line no-unused-expressions
expect(rollback.commands.rollback.commands.function).to.not.be.undefined
})
it('should have a lifecycle event rollback', () => {
expect(
rollback.commands.rollback.commands.function.lifecycleEvents,
).to.deep.equal(['rollback'])
})
it('should have a required option function', () => {
// eslint-disable-next-line no-unused-expressions
expect(
rollback.commands.rollback.commands.function.options.function
.required,
).to.be.true
})
})
})
})