drop-schema-query.test.ts 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. import { buildInvalidOptionReceivedError } from '@sequelize/core/_non-semver-use-at-your-own-risk_/utils/check.js';
  2. import { expectsql, getTestDialect, sequelize } from '../../support';
  3. const dialectName = getTestDialect();
  4. const notSupportedError = new Error(`Schemas are not supported in ${dialectName}.`);
  5. describe('QueryGenerator#dropSchemaQuery', () => {
  6. const queryGenerator = sequelize.queryGenerator;
  7. it('produces a DROP SCHEMA query in supported dialects', () => {
  8. expectsql(() => queryGenerator.dropSchemaQuery('mySchema'), {
  9. default: 'DROP SCHEMA [mySchema]',
  10. db2: 'DROP SCHEMA "mySchema" RESTRICT',
  11. sqlite3: notSupportedError,
  12. });
  13. });
  14. it('produces a DROP SCHEMA IF EXISTS query in supported dialects', () => {
  15. expectsql(() => queryGenerator.dropSchemaQuery('mySchema', { ifExists: true }), {
  16. default: 'DROP SCHEMA IF EXISTS [mySchema]',
  17. 'db2 mssql': buildInvalidOptionReceivedError('dropSchemaQuery', dialectName, ['ifExists']),
  18. sqlite3: notSupportedError,
  19. });
  20. });
  21. it('produces a DROP SCHEMA CASCADE query in supported dialects', () => {
  22. expectsql(() => queryGenerator.dropSchemaQuery('mySchema', { cascade: true }), {
  23. default: 'DROP SCHEMA [mySchema] CASCADE',
  24. 'db2 mariadb mssql mysql': buildInvalidOptionReceivedError('dropSchemaQuery', dialectName, [
  25. 'cascade',
  26. ]),
  27. sqlite3: notSupportedError,
  28. });
  29. });
  30. it('produces a DROP SCHEMA IF EXISTS CASCADE query in supported dialects', () => {
  31. expectsql(() => queryGenerator.dropSchemaQuery('mySchema', { cascade: true, ifExists: true }), {
  32. default: 'DROP SCHEMA IF EXISTS [mySchema] CASCADE',
  33. 'db2 mssql': buildInvalidOptionReceivedError('dropSchemaQuery', dialectName, [
  34. 'cascade',
  35. 'ifExists',
  36. ]),
  37. 'mariadb mysql': buildInvalidOptionReceivedError('dropSchemaQuery', dialectName, ['cascade']),
  38. sqlite3: notSupportedError,
  39. });
  40. });
  41. });