12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- import { buildInvalidOptionReceivedError } from '@sequelize/core/_non-semver-use-at-your-own-risk_/utils/check.js';
- import { createSequelizeInstance, expectsql, getTestDialect, sequelize } from '../../support';
- const dialectName = getTestDialect();
- const dialect = sequelize.dialect;
- describe('QueryGenerator#dropTableQuery', () => {
- const queryGenerator = sequelize.queryGenerator;
- it('produces a query that drops a table', () => {
- expectsql(() => queryGenerator.dropTableQuery('myTable'), {
- default: `DROP TABLE IF EXISTS [myTable]`,
- });
- });
- it('produces a query that drops a table with cascade', () => {
- expectsql(() => queryGenerator.dropTableQuery('myTable', { cascade: true }), {
- default: buildInvalidOptionReceivedError('dropTableQuery', dialectName, ['cascade']),
- 'postgres snowflake': `DROP TABLE IF EXISTS "myTable" CASCADE`,
- });
- });
- it('produces a query that drops a table from a model', () => {
- const MyModel = sequelize.define('MyModel', {});
- expectsql(() => queryGenerator.dropTableQuery(MyModel), {
- default: `DROP TABLE IF EXISTS [MyModels]`,
- });
- });
- it('produces a query that drops a table from a model definition', () => {
- const MyModel = sequelize.define('MyModel', {});
- const myDefinition = MyModel.modelDefinition;
- expectsql(() => queryGenerator.dropTableQuery(myDefinition), {
- default: `DROP TABLE IF EXISTS [MyModels]`,
- });
- });
- it('produces a query that drops a table with schema', () => {
- expectsql(() => queryGenerator.dropTableQuery({ tableName: 'myTable', schema: 'mySchema' }), {
- default: `DROP TABLE IF EXISTS [mySchema].[myTable]`,
- sqlite3: 'DROP TABLE IF EXISTS `mySchema.myTable`',
- });
- });
- it('produces a query that drops a table with default schema', () => {
- expectsql(
- () =>
- queryGenerator.dropTableQuery({ tableName: 'myTable', schema: dialect.getDefaultSchema() }),
- {
- default: `DROP TABLE IF EXISTS [myTable]`,
- },
- );
- });
- it('produces a query that drops a table from a table and globally set schema', () => {
- const sequelizeSchema = createSequelizeInstance({ schema: 'mySchema' });
- const queryGeneratorSchema = sequelizeSchema.queryGenerator;
- expectsql(() => queryGeneratorSchema.dropTableQuery('myTable'), {
- default: `DROP TABLE IF EXISTS [mySchema].[myTable]`,
- sqlite3: 'DROP TABLE IF EXISTS `mySchema.myTable`',
- });
- });
- it('produces a query that drops a table with schema and custom delimiter argument', () => {
- // This test is only relevant for dialects that do not support schemas
- if (dialect.supports.schemas) {
- return;
- }
- expectsql(
- () =>
- queryGenerator.dropTableQuery({
- tableName: 'myTable',
- schema: 'mySchema',
- delimiter: 'custom',
- }),
- {
- sqlite3: 'DROP TABLE IF EXISTS `mySchemacustommyTable`',
- },
- );
- });
- });
|