audiobookshelf/test/server/migrations/v2.17.3-share-add-isdownloadable.test.js

42 lines
1.2 KiB
JavaScript

const chai = require('chai')
const sinon = require('sinon')
const { expect } = chai
const { DataTypes } = require('sequelize')
const { up, down } = require('../../../server/migrations/v2.17.3-share-add-isdownloadable')
describe('Migration v2.17.3-share-add-isDownloadable', () => {
let queryInterface
beforeEach(() => {
queryInterface = {
addColumn: sinon.stub().resolves(),
removeColumn: sinon.stub().resolves()
}
})
describe('up', () => {
it('should add the isDownloadable column to mediaItemShares table', async () => {
await up({ context: { queryInterface } })
expect(queryInterface.addColumn.calledOnce).to.be.true
expect(
queryInterface.addColumn.calledWith('mediaItemShares', 'isDownloadable', {
type: DataTypes.BOOLEAN,
defaultValue: false,
allowNull: false
})
).to.be.true
})
})
describe('down', () => {
it('should remove the isDownloadable column from mediaItemShares table', async () => {
await down({ context: { queryInterface } })
expect(queryInterface.removeColumn.calledOnce).to.be.true
expect(queryInterface.removeColumn.calledWith('mediaItemShares', 'isDownloadable')).to.be.true
})
})
})