set-constraint-checking-query.test.ts 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. import { ConstraintChecking } from '@sequelize/core';
  2. import { expectsql, sequelize } from '../../support';
  3. const { name } = sequelize.dialect;
  4. const queryGenerator = sequelize.queryGenerator;
  5. const notSupportedError = new Error(`Deferrable constraints are not supported by ${name} dialect`);
  6. describe('QueryGenerator#setConstraintCheckingQuery', () => {
  7. describe('DEFERRED constraints', () => {
  8. it('generates a deferred constraint checking query for all constraints', () => {
  9. expectsql(
  10. () => queryGenerator.setConstraintCheckingQuery(new ConstraintChecking.DEFERRED()),
  11. {
  12. default: notSupportedError,
  13. 'postgres snowflake': 'SET CONSTRAINTS ALL DEFERRED',
  14. },
  15. );
  16. });
  17. it('generates a deferred constraint checking query for all constraints with an empty array', () => {
  18. expectsql(() => queryGenerator.setConstraintCheckingQuery(ConstraintChecking.DEFERRED, []), {
  19. default: notSupportedError,
  20. 'postgres snowflake': 'SET CONSTRAINTS ALL DEFERRED',
  21. });
  22. });
  23. it('generates a deferred constraint checking query for all constraints with an empty array for an instance', () => {
  24. expectsql(
  25. () => queryGenerator.setConstraintCheckingQuery(new ConstraintChecking.DEFERRED([])),
  26. {
  27. default: notSupportedError,
  28. 'postgres snowflake': 'SET CONSTRAINTS ALL DEFERRED',
  29. },
  30. );
  31. });
  32. it('generates a deferred constraint checking query for the specified constraints', () => {
  33. expectsql(
  34. () =>
  35. queryGenerator.setConstraintCheckingQuery(ConstraintChecking.DEFERRED, [
  36. 'test1',
  37. 'test2',
  38. ]),
  39. {
  40. default: notSupportedError,
  41. 'postgres snowflake': 'SET CONSTRAINTS "test1", "test2" DEFERRED',
  42. },
  43. );
  44. });
  45. it('generates a deferred constraint checking query for the specified constraints for an instance', () => {
  46. expectsql(
  47. () =>
  48. queryGenerator.setConstraintCheckingQuery(
  49. new ConstraintChecking.DEFERRED(['test1', 'test2']),
  50. ),
  51. {
  52. default: notSupportedError,
  53. 'postgres snowflake': 'SET CONSTRAINTS "test1", "test2" DEFERRED',
  54. },
  55. );
  56. });
  57. });
  58. describe('IMMEDIATE constraints', () => {
  59. it('generates an immediate constraint checking query for all constraints', () => {
  60. expectsql(
  61. () => queryGenerator.setConstraintCheckingQuery(new ConstraintChecking.IMMEDIATE()),
  62. {
  63. default: notSupportedError,
  64. 'postgres snowflake': 'SET CONSTRAINTS ALL IMMEDIATE',
  65. },
  66. );
  67. });
  68. it('generates an immediate constraint checking query for all constraints with an empty array', () => {
  69. expectsql(() => queryGenerator.setConstraintCheckingQuery(ConstraintChecking.IMMEDIATE, []), {
  70. default: notSupportedError,
  71. 'postgres snowflake': 'SET CONSTRAINTS ALL IMMEDIATE',
  72. });
  73. });
  74. it('generates an immediate constraint checking query for all constraints with an empty array for an instance', () => {
  75. expectsql(
  76. () => queryGenerator.setConstraintCheckingQuery(new ConstraintChecking.IMMEDIATE([])),
  77. {
  78. default: notSupportedError,
  79. 'postgres snowflake': 'SET CONSTRAINTS ALL IMMEDIATE',
  80. },
  81. );
  82. });
  83. it('generates an immediate constraint checking query for the specified constraints', () => {
  84. expectsql(
  85. () =>
  86. queryGenerator.setConstraintCheckingQuery(ConstraintChecking.IMMEDIATE, [
  87. 'test1',
  88. 'test2',
  89. ]),
  90. {
  91. default: notSupportedError,
  92. 'postgres snowflake': 'SET CONSTRAINTS "test1", "test2" IMMEDIATE',
  93. },
  94. );
  95. });
  96. it('generates an immediate constraint checking query for the specified constraints for an instance', () => {
  97. expectsql(
  98. () =>
  99. queryGenerator.setConstraintCheckingQuery(
  100. new ConstraintChecking.IMMEDIATE(['test1', 'test2']),
  101. ),
  102. {
  103. default: notSupportedError,
  104. 'postgres snowflake': 'SET CONSTRAINTS "test1", "test2" IMMEDIATE',
  105. },
  106. );
  107. });
  108. });
  109. });