smoke.test.js 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. 'use strict';
  2. const Support = require('../../support');
  3. const dialect = Support.getTestDialect();
  4. const { DataTypes } = require('@sequelize/core');
  5. const dayjs = require('dayjs');
  6. if (dialect === 'snowflake') {
  7. describe('[SNOWFLAKE Specific] Smoke test', () => {
  8. describe('[SNOWFLAKE Specific] Basic test for one table', () => {
  9. let User;
  10. before(async () => {
  11. const sequelize = Support.createSequelizeInstance();
  12. User = sequelize.define('User', {
  13. username: DataTypes.STRING,
  14. lastActivity: {
  15. type: DataTypes.DATE,
  16. get() {
  17. const value = this.getDataValue('lastActivity');
  18. return value ? value.valueOf() : 0;
  19. },
  20. },
  21. });
  22. await User.sync({ force: true });
  23. await User.create({
  24. id: 1,
  25. username: 'jozef',
  26. lastActivity: new Date(Date.UTC(2021, 5, 21)),
  27. });
  28. await User.create({
  29. id: 2,
  30. username: 'jeff',
  31. lastActivity: dayjs(Date.UTC(2021, 5, 22)).format('YYYY-MM-DD HH:mm:ss Z'),
  32. });
  33. });
  34. after(async () => {
  35. await User.drop();
  36. });
  37. it('findOne with where', async () => {
  38. const user = await User.findOne({
  39. where: {
  40. username: 'jeff',
  41. },
  42. });
  43. user.id.should.equal(2);
  44. });
  45. it('findOne with date attribute', async () => {
  46. const user = await User.findOne({
  47. where: {
  48. username: 'jeff',
  49. },
  50. });
  51. // user.lastActivity.should.be.equalTime(new Date(Date.UTC(2021, 5, 22)));
  52. user.lastActivity.should.equal(Date.UTC(2021, 5, 22));
  53. });
  54. it('findAll with orderby', async () => {
  55. const username = 'test';
  56. await User.create({ id: 3, username });
  57. const users = await User.findAll({
  58. order: [['createdAt', 'ASC']],
  59. });
  60. await users.at(-1).username.should.equal(username);
  61. });
  62. it('Update', async () => {
  63. const res = await User.update(
  64. { username: 'jozef1' },
  65. {
  66. where: {
  67. id: 1,
  68. },
  69. },
  70. );
  71. // https://github.com/sequelize/sequelize/issues/7184
  72. await res[0].should.equal(1);
  73. });
  74. });
  75. describe('[SNOWFLAKE Specific] Test for auto_increment', () => {
  76. const vars = Support.beforeAll2(async () => {
  77. const sequelize = Support.createSequelizeInstance();
  78. const Task = sequelize.define('Task', {
  79. id: {
  80. type: 'INTEGER',
  81. primaryKey: true,
  82. autoIncrement: true,
  83. },
  84. taskName: DataTypes.STRING,
  85. });
  86. await Task.sync({ force: true });
  87. await Task.create({ taskName: 'task1' });
  88. await Task.create({ taskName: 'task2' });
  89. return { sequelize, Task };
  90. });
  91. after(async () => {
  92. await vars.sequelize.close();
  93. });
  94. it('findOne with where', async () => {
  95. const user = await vars.Task.findOne({
  96. where: {
  97. taskName: 'task2',
  98. },
  99. });
  100. user.id.should.equal(2);
  101. });
  102. });
  103. });
  104. }