12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- import { IsolationLevel } from '@sequelize/core';
- import { expectsql, sequelize } from '../../support';
- const dialect = sequelize.dialect;
- const notSupportedError = new Error(`Isolation levels are not supported by ${dialect.name}.`);
- const queryNotSupportedError = new Error(
- `setIsolationLevelQuery is not supported by the ${dialect.name} dialect.`,
- );
- describe('QueryGenerator#setIsolationLevelQuery', () => {
- const queryGenerator = sequelize.queryGenerator;
- it('should generate a query for setting the isolation level to READ COMMITTED', () => {
- expectsql(() => queryGenerator.setIsolationLevelQuery(IsolationLevel.READ_COMMITTED), {
- default: 'SET TRANSACTION ISOLATION LEVEL READ COMMITTED',
- sqlite3: new Error(
- `The ${IsolationLevel.READ_COMMITTED} isolation level is not supported by ${dialect.name}.`,
- ),
- snowflake: notSupportedError,
- 'db2 ibmi mssql': queryNotSupportedError,
- });
- });
- it('should generate a query for setting the isolation level to READ UNCOMMITTED', () => {
- expectsql(() => queryGenerator.setIsolationLevelQuery(IsolationLevel.READ_UNCOMMITTED), {
- default: 'SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED',
- sqlite3: 'PRAGMA read_uncommitted = 1',
- snowflake: notSupportedError,
- 'db2 ibmi mssql': queryNotSupportedError,
- });
- });
- it('should generate a query for setting the isolation level to REPEATABLE READ', () => {
- expectsql(() => queryGenerator.setIsolationLevelQuery(IsolationLevel.REPEATABLE_READ), {
- default: 'SET TRANSACTION ISOLATION LEVEL REPEATABLE READ',
- sqlite3: new Error(
- `The ${IsolationLevel.REPEATABLE_READ} isolation level is not supported by ${dialect.name}.`,
- ),
- snowflake: notSupportedError,
- 'db2 ibmi mssql': queryNotSupportedError,
- });
- });
- it('should generate a query for setting the isolation level to SERIALIZABLE', () => {
- expectsql(() => queryGenerator.setIsolationLevelQuery(IsolationLevel.SERIALIZABLE), {
- default: 'SET TRANSACTION ISOLATION LEVEL SERIALIZABLE',
- sqlite3: 'PRAGMA read_uncommitted = 0',
- snowflake: notSupportedError,
- 'db2 ibmi mssql': queryNotSupportedError,
- });
- });
- });
|