Я пытаюсь начать писать тесты для моего приложения. Я использую Jest {amp}amp; Supertest для запуска всех своих тестов. Когда я пытаюсь запустить свой набор тестов, я получаю сообщение об ошибке ограничения внешнего ключа.

Ошибка:

error: truncate "users" restart identity - cannot truncate a table referenced in a foreign key constrainterror: cannot truncate a table referenced in a foreign key constraint 

Это мой файл server.spec.js:

 const request = require('supertest'); const server = require('./server.js'); const db = require('../data/db-config.js'); describe('server.js', () ={amp}gt; { describe('POST /register', () ={amp}gt; { it('should return 201 created', async () ={amp}gt; { const user = { name: "test", username: "test", email: "test77@test.com", password: "password" } const res = await request(server).post('/api/auth/register').send(user); expect(res.status).toBe(201); }) beforeEach(async () ={amp}gt; { await db("graphs").truncate(); await db("users").truncate(); }); }) }) 

И вот мой файл миграции knex:

 exports.up = function(knex) { return ( knex.schema .createTable('users', tbl ={amp}gt; { tbl.increments(); tbl.string('username', 255).notNullable(); tbl.string('password', 255).notNullable(); tbl.string('name', 255).notNullable(); tbl.string('email', 255).unique().notNullable(); }) .createTable('graphs', tbl ={amp}gt; { tbl.increments(); tbl.string('graph_name', 255).notNullable(); tbl.specificType('dataset', 'integer[]').notNullable(); tbl .integer('user_id') .unsigned() .notNullable() .references('id') .inTable('users') .onDelete('CASCADE') .onUpdate('CASCADE'); }) ) }; exports.down = function(knex) { return ( knex.schema .dropTableIfExists('graphs') .dropTableIfExists('users') ) }; 

Я наткнулся на этот ответ в своем исследовании: как проверить таблицы, связанные с внешними ключами?

Я новичок как в Postgres, так и в тестировании. Имеет смысл, что мне нужно будет отбрасывать таблицы в обратном порядке, как при миграции. Но когда я пытаюсь beforeEach их в разделе beforeEach моего теста, не имеет значения, в каком порядке перечислены таблицы.

Я не уверен, куда именно идти отсюда. Любая помощь будет принята с благодарностью.