mirror of
https://github.com/advplyr/audiobookshelf.git
synced 2026-07-09 19:01:41 +00:00
Add migration to include isDownloadable column in mediaItemShares table
This commit is contained in:
parent
9ef45686ac
commit
32850d13ec
2 changed files with 74 additions and 0 deletions
32
server/migrations/v2.17.3-share-add-isdownloadable.js
Normal file
32
server/migrations/v2.17.3-share-add-isdownloadable.js
Normal file
|
|
@ -0,0 +1,32 @@
|
||||||
|
'use strict'
|
||||||
|
|
||||||
|
const { DataTypes } = require('sequelize')
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @typedef MigrationContext
|
||||||
|
* @property {import('sequelize').QueryInterface} queryInterface - a Sequelize QueryInterface object.
|
||||||
|
* @property {import('../Logger')} logger - a Logger object.
|
||||||
|
*
|
||||||
|
* @typedef MigrationOptions
|
||||||
|
* @property {MigrationContext} context - an object containing the migration context.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This migration script adds the isDownloadable column to the mediaItemShares table.
|
||||||
|
*
|
||||||
|
* @param {MigrationOptions} options - an object containing the migration context.
|
||||||
|
* @returns {Promise<void>} - A promise that resolves when the migration is complete.
|
||||||
|
*/
|
||||||
|
module.exports = {
|
||||||
|
up: async ({ context: { queryInterface, logger } }) => {
|
||||||
|
await queryInterface.addColumn('mediaItemShares', 'isDownloadable', {
|
||||||
|
type: DataTypes.BOOLEAN,
|
||||||
|
defaultValue: false,
|
||||||
|
allowNull: false
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
down: async ({ context: { queryInterface, logger } }) => {
|
||||||
|
await queryInterface.removeColumn('mediaItemShares', 'isDownloadable')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,42 @@
|
||||||
|
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
|
||||||
|
})
|
||||||
|
})
|
||||||
|
})
|
||||||
Loading…
Add table
Add a link
Reference in a new issue