diff --git a/test/server/migrations/v2.17.3-share-add-isdownloadable.test.js b/test/server/migrations/v2.17.3-share-add-isdownloadable.test.js deleted file mode 100644 index 1d2a82a0a6..0000000000 --- a/test/server/migrations/v2.17.3-share-add-isdownloadable.test.js +++ /dev/null @@ -1,42 +0,0 @@ -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 - }) - }) -}) diff --git a/test/server/migrations/v2.17.6-share-add-isdownloadable.test.js b/test/server/migrations/v2.17.6-share-add-isdownloadable.test.js new file mode 100644 index 0000000000..4e03a9f6af --- /dev/null +++ b/test/server/migrations/v2.17.6-share-add-isdownloadable.test.js @@ -0,0 +1,61 @@ +const chai = require('chai') +const sinon = require('sinon') +const { expect } = chai + +const { DataTypes } = require('sequelize') + +const { up, down } = require('../../../server/migrations/v2.17.6-share-add-isdownloadable') + +describe('Migration v2.17.6-share-add-isDownloadable', () => { + let queryInterface, logger + + beforeEach(() => { + queryInterface = { + addColumn: sinon.stub().resolves(), + removeColumn: sinon.stub().resolves(), + tableExists: sinon.stub().resolves(true), + describeTable: sinon.stub().resolves({ isDownloadable: undefined }) + } + + logger = { + info: sinon.stub(), + error: sinon.stub() + } + }) + + describe('up', () => { + it('should add the isDownloadable column to mediaItemShares table', async () => { + await up({ context: { queryInterface, logger } }) + + expect(queryInterface.addColumn.calledOnce).to.be.true + expect( + queryInterface.addColumn.calledWith('mediaItemShares', 'isDownloadable', { + type: DataTypes.BOOLEAN, + defaultValue: false, + allowNull: false + }) + ).to.be.true + + expect(logger.info.calledWith('[2.17.6 migration] UPGRADE BEGIN: 2.17.6-share-add-isdownloadable')).to.be.true + expect(logger.info.calledWith('[2.17.6 migration] Adding isDownloadable column to mediaItemShares table')).to.be.true + expect(logger.info.calledWith('[2.17.6 migration] Added isDownloadable column to mediaItemShares table')).to.be.true + expect(logger.info.calledWith('[2.17.6 migration] UPGRADE END: 2.17.6-share-add-isdownloadable')).to.be.true + }) + }) + + describe('down', () => { + it('should remove the isDownloadable column from mediaItemShares table', async () => { + queryInterface.describeTable.resolves({ isDownloadable: true }) + + await down({ context: { queryInterface, logger } }) + + expect(queryInterface.removeColumn.calledOnce).to.be.true + expect(queryInterface.removeColumn.calledWith('mediaItemShares', 'isDownloadable')).to.be.true + + expect(logger.info.calledWith('[2.17.6 migration] DOWNGRADE BEGIN: 2.17.6-share-add-isdownloadable')).to.be.true + expect(logger.info.calledWith('[2.17.6 migration] Removing isDownloadable column from mediaItemShares table')).to.be.true + expect(logger.info.calledWith('[2.17.6 migration] Removed isDownloadable column from mediaItemShares table')).to.be.true + expect(logger.info.calledWith('[2.17.6 migration] DOWNGRADE END: 2.17.6-share-add-isdownloadable')).to.be.true + }) + }) +})