From d6f2111dbb56bedd2ef6668f1f21ae48b55ba889 Mon Sep 17 00:00:00 2001 From: jlenon7 Date: Fri, 8 Aug 2025 11:34:25 -0300 Subject: [PATCH 1/2] chore(model): adjust dirty for JSONB fields --- package.json | 2 +- src/constants/OriginalSymbol.ts | 13 +++++ src/models/BaseModel.ts | 56 ++++++------------- templates/crud-service-test.edge | 4 +- tests/unit/drivers/MongoDriverTest.ts | 50 ++++++++--------- tests/unit/drivers/MySqlDriverTest.ts | 52 ++++++++--------- tests/unit/drivers/PostgresDriverTest.ts | 52 ++++++++--------- tests/unit/drivers/SqliteDriverTest.ts | 52 ++++++++--------- tests/unit/models/BaseModelTest.ts | 23 ++------ .../models/factories/ModelGeneratorTest.ts | 12 ++-- .../BelongsTo/BelongsToRelationTest.ts | 18 ++---- .../BelongsToManyRelationTest.ts | 12 ++-- .../relations/HasMany/HasManyRelationTest.ts | 9 +-- .../relations/HasOne/HasOneRelationTest.ts | 9 +-- 14 files changed, 165 insertions(+), 199 deletions(-) create mode 100644 src/constants/OriginalSymbol.ts diff --git a/package.json b/package.json index 35eb9e5a..9693fd63 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@athenna/database", - "version": "5.27.0", + "version": "5.28.0", "description": "The Athenna database handler for SQL/NoSQL.", "license": "MIT", "author": "João Lenon ", diff --git a/src/constants/OriginalSymbol.ts b/src/constants/OriginalSymbol.ts new file mode 100644 index 00000000..1d57f060 --- /dev/null +++ b/src/constants/OriginalSymbol.ts @@ -0,0 +1,13 @@ +/** + * @athenna/database + * + * (c) João Lenon + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +/** + * Symbol used to store the original value of a model. + */ +export const ORIGINAL_SYMBOL: unique symbol = Symbol('BaseModel.original') diff --git a/src/models/BaseModel.ts b/src/models/BaseModel.ts index 9885235f..bd7d202e 100644 --- a/src/models/BaseModel.ts +++ b/src/models/BaseModel.ts @@ -8,11 +8,11 @@ */ import { - Collection, Is, Json, - Options, String, + Options, + Collection, type PaginatedResponse, type PaginationOptions } from '@athenna/common' @@ -21,6 +21,7 @@ import { Database } from '#src/facades/Database' import type { ModelRelations } from '#src/types' import { faker, type Faker } from '@faker-js/faker' import { ModelSchema } from '#src/models/schemas/ModelSchema' +import { ORIGINAL_SYMBOL } from '#src/constants/OriginalSymbol' import { ModelFactory } from '#src/models/factories/ModelFactory' import { ModelGenerator } from '#src/models/factories/ModelGenerator' import { ModelQueryBuilder } from '#src/models/builders/ModelQueryBuilder' @@ -435,31 +436,27 @@ export class BaseModel { * is a fresh instance and is not available in database * yet. */ - private original?: Record + private [ORIGINAL_SYMBOL]?: Record /** * Set the original model values by deep copying * the model state. */ public setOriginal() { - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore - this.original = {} + this[ORIGINAL_SYMBOL] = {} - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore - Object.keys(Json.copy(Json.omit(this, ['original']))).forEach(key => { + Object.keys(Json.copy(this)).forEach(key => { const value = this[key] - if (Is.Array(value) && value[0]?.original) { + if (Is.Array(value) && value[0] && ORIGINAL_SYMBOL in value[0]) { return } - if (value && value.original) { + if (Is.Object(value) && value && ORIGINAL_SYMBOL in value) { return } - this.original[key] = value + this[ORIGINAL_SYMBOL][key] = value }) return this @@ -482,10 +479,6 @@ export class BaseModel { * Execute the toJSON of relations. */ Object.keys(this).forEach(key => { - if (key === 'original') { - return - } - if (relations.includes(key)) { if (Is.Array(this[key])) { json[key] = this[key].map(d => (d.toJSON ? d.toJSON() : d)) @@ -553,12 +546,12 @@ export class BaseModel { * or if it's a fresh instance. */ public isPersisted(): boolean { - return !!this.original + return !!this[ORIGINAL_SYMBOL] } /** * Get values only that are different from - * the original property to avoid updating + * the original symbol to avoid updating * data that was not changed. */ public dirty() { @@ -569,33 +562,20 @@ export class BaseModel { const dirty: Record = {} Object.keys(this).forEach(key => { - if (key === 'original') { - return - } - - const delta = Json.diff(this.original[key], this[key]) - - if (Is.Object(delta)) { - if (!Object.keys(delta).length) { - return - } - - dirty[key] = delta + const orig = this[ORIGINAL_SYMBOL][key] + const curr = this[key] + if (Json.isEqual(orig, curr)) { return } - if (Is.Array(delta)) { - if (!delta.length) { - return - } - - dirty[key] = delta + if (Is.Object(curr) || Is.Array(curr)) { + dirty[key] = Json.copy(curr) return } - dirty[key] = delta + dirty[key] = Json.diff(orig, curr) }) return dirty @@ -655,7 +635,7 @@ export class BaseModel { /** * Means data is not dirty because there are any - * value that is different from original prop. + * value that is different from original symbol. */ if (!Object.keys(data).length) { return this diff --git a/templates/crud-service-test.edge b/templates/crud-service-test.edge index 5a64d0f7..842b87ef 100644 --- a/templates/crud-service-test.edge +++ b/templates/crud-service-test.edge @@ -41,7 +41,7 @@ export default class {{ crudNamePascal }}ServiceTest { {{{ createBody }}} }) - assert.containsSubset(data.toJSON(), {{ crudNameLower }}.toJSON()) + assert.containSubset(data.toJSON(), {{ crudNameLower }}.toJSON()) } @Test() @@ -77,7 +77,7 @@ export default class {{ crudNamePascal }}ServiceTest { {{{ updateBody }}} }) - assert.containsSubset(data.toJSON(), { + assert.containSubset(data.toJSON(), { {{{ updateBody }}} }) } diff --git a/tests/unit/drivers/MongoDriverTest.ts b/tests/unit/drivers/MongoDriverTest.ts index 5e813788..4440dd32 100644 --- a/tests/unit/drivers/MongoDriverTest.ts +++ b/tests/unit/drivers/MongoDriverTest.ts @@ -565,7 +565,7 @@ export default class MongoDriverTest { const result = await this.driver.table('users').findOrFail() - assert.containsSubset(result, data) + assert.containSubset(result, data) } @Test() @@ -582,7 +582,7 @@ export default class MongoDriverTest { return { _id: '1', name: 'Marie Curie' } }) - assert.containsSubset(result, data) + assert.containSubset(result, data) } @Test() @@ -619,7 +619,7 @@ export default class MongoDriverTest { }) .find() - assert.containsSubset(result, { _id: '1', name: 'Marie Curie' }) + assert.containSubset(result, { _id: '1', name: 'Marie Curie' }) } @Test() @@ -629,7 +629,7 @@ export default class MongoDriverTest { const result = await this.driver.table('users').find() - assert.containsSubset(result, data) + assert.containSubset(result, data) } @Test() @@ -656,7 +656,7 @@ export default class MongoDriverTest { const result = await this.driver.table('users').findMany() - assert.containsSubset(result, data) + assert.containSubset(result, data) } @Test() @@ -666,7 +666,7 @@ export default class MongoDriverTest { const result = await this.driver.table('users').pluck('name') - assert.containsSubset(result, 'Charles Babbage') + assert.containSubset(result, 'Charles Babbage') } @Test() @@ -676,7 +676,7 @@ export default class MongoDriverTest { const result = await this.driver.table('users').pluckMany('name') - assert.containsSubset(result, ['Charles Babbage']) + assert.containSubset(result, ['Charles Babbage']) } @Test() @@ -693,7 +693,7 @@ export default class MongoDriverTest { const result = await this.driver.table('users').findMany() - assert.containsSubset(result, data) + assert.containSubset(result, data) } @Test() @@ -710,7 +710,7 @@ export default class MongoDriverTest { const result = await this.driver.table('users').paginate() - assert.containsSubset(result.data, data) + assert.containSubset(result.data, data) assert.deepEqual(result.meta, { currentPage: 0, itemCount: 1, @@ -733,7 +733,7 @@ export default class MongoDriverTest { const result = await this.driver.table('users').paginate(0, 10, '/users') - assert.containsSubset(result.data, data) + assert.containSubset(result.data, data) assert.deepEqual(result.meta, { currentPage: 0, itemCount: 1, @@ -762,7 +762,7 @@ export default class MongoDriverTest { const result = await this.driver.table('users').create(data) - assert.containsSubset(result, data) + assert.containSubset(result, data) } @Test() @@ -782,7 +782,7 @@ export default class MongoDriverTest { const result = await this.driver.table('users').createMany(data) - assert.containsSubset(result, data) + assert.containSubset(result, data) } @Test() @@ -799,7 +799,7 @@ export default class MongoDriverTest { const result = await this.driver.table('users').createOrUpdate(data) - assert.containsSubset(result, data) + assert.containSubset(result, data) } @Test() @@ -809,7 +809,7 @@ export default class MongoDriverTest { await this.driver.table('users').create(data) const result = await this.driver.table('users').createOrUpdate({ ...data, name: 'Robert Kiyosaki Millennials' }) - assert.containsSubset(result, { ...data, name: 'Robert Kiyosaki Millennials' }) + assert.containSubset(result, { ...data, name: 'Robert Kiyosaki Millennials' }) } @Test() @@ -819,7 +819,7 @@ export default class MongoDriverTest { await this.driver.table('users').create(data) const result = await this.driver.table('users').update({ ...data, name: 'Robert Kiyosaki Millennials' }) - assert.containsSubset(result, { ...data, name: 'Robert Kiyosaki Millennials' }) + assert.containSubset(result, { ...data, name: 'Robert Kiyosaki Millennials' }) } @Test() @@ -835,7 +835,7 @@ export default class MongoDriverTest { .whereIn('_id', ['1', '2']) .update({ name: 'Robert Kiyosaki Millennials' }) - assert.containsSubset(result, [ + assert.containSubset(result, [ { _id: '1', name: 'Robert Kiyosaki Millennials' }, { _id: '2', name: 'Robert Kiyosaki Millennials' } ]) @@ -891,7 +891,7 @@ export default class MongoDriverTest { const data = await this.driver.table('users').select('*').where('_id', '1').findMany() - assert.containsSubset(data, [{ _id: '1', name: 'Alan Turing' }]) + assert.containSubset(data, [{ _id: '1', name: 'Alan Turing' }]) } @Test() @@ -1258,7 +1258,7 @@ export default class MongoDriverTest { const data = await this.driver.table('users').groupBy('_id', 'name').havingNotIn('_id', ['1', '2']).findMany() - assert.containsSubset(data, [{ _id: '3', name: 'Alan Turing' }]) + assert.containSubset(data, [{ _id: '3', name: 'Alan Turing' }]) } @Test() @@ -1279,7 +1279,7 @@ export default class MongoDriverTest { const data = await this.driver.table('users').groupBy('_id', 'name').havingBetween('_id', ['1', '3']).findMany() - assert.containsSubset(data, [ + assert.containSubset(data, [ { _id: '1', name: 'Robert Kiyosaki' }, { _id: '2', name: 'Warren Buffet' }, { _id: '3', name: 'Alan Turing' } @@ -1477,7 +1477,7 @@ export default class MongoDriverTest { const data = await this.driver.table('users').groupBy('_id', 'name').orHavingNotIn('_id', ['1', '2']).findMany() - assert.containsSubset(data, [{ _id: '3', name: 'Alan Turing' }]) + assert.containSubset(data, [{ _id: '3', name: 'Alan Turing' }]) } @Test() @@ -1498,7 +1498,7 @@ export default class MongoDriverTest { const data = await this.driver.table('users').groupBy('_id', 'name').orHavingBetween('_id', ['1', '3']).findMany() - assert.containsSubset(data, [ + assert.containSubset(data, [ { _id: '1', name: 'Robert Kiyosaki' }, { _id: '2', name: 'Warren Buffet' }, { _id: '3', name: 'Alan Turing' } @@ -1801,7 +1801,7 @@ export default class MongoDriverTest { const data = await this.driver.table('users').whereNotIn('_id', ['1', '2']).findMany() - assert.containsSubset(data, [{ _id: '3', name: 'Alan Turing' }]) + assert.containSubset(data, [{ _id: '3', name: 'Alan Turing' }]) } @Test() @@ -1822,7 +1822,7 @@ export default class MongoDriverTest { const data = await this.driver.table('users').whereBetween('_id', ['1', '3']).findMany() - assert.containsSubset(data, [ + assert.containSubset(data, [ { _id: '1', name: 'Robert Kiyosaki' }, { _id: '2', name: 'Warren Buffet' }, { _id: '3', name: 'Alan Turing' } @@ -2115,7 +2115,7 @@ export default class MongoDriverTest { const data = await this.driver.table('users').orWhereNotIn('_id', ['1', '2']).findMany() - assert.containsSubset(data, [{ _id: '3', name: 'Alan Turing' }]) + assert.containSubset(data, [{ _id: '3', name: 'Alan Turing' }]) } @Test() @@ -2128,7 +2128,7 @@ export default class MongoDriverTest { const data = await this.driver.table('users').orWhereBetween('_id', ['1', '3']).findMany() - assert.containsSubset(data, [ + assert.containSubset(data, [ { _id: '1', name: 'Robert Kiyosaki' }, { _id: '2', name: 'Warren Buffet' }, { _id: '3', name: 'Alan Turing' } diff --git a/tests/unit/drivers/MySqlDriverTest.ts b/tests/unit/drivers/MySqlDriverTest.ts index 75639782..636008a2 100644 --- a/tests/unit/drivers/MySqlDriverTest.ts +++ b/tests/unit/drivers/MySqlDriverTest.ts @@ -614,7 +614,7 @@ export default class MySqlDriverTest { const result = await this.driver.table('users').findOrFail() - assert.containsSubset(result, data) + assert.containSubset(result, data) } @Test() @@ -631,7 +631,7 @@ export default class MySqlDriverTest { return { id: '1', name: 'Marie Curie' } }) - assert.containsSubset(result, data) + assert.containSubset(result, data) } @Test() @@ -668,7 +668,7 @@ export default class MySqlDriverTest { }) .find() - assert.containsSubset(result, { id: '1', name: 'Marie Curie' }) + assert.containSubset(result, { id: '1', name: 'Marie Curie' }) } @Test() @@ -678,7 +678,7 @@ export default class MySqlDriverTest { const result = await this.driver.table('users').find() - assert.containsSubset(result, data) + assert.containSubset(result, data) } @Test() @@ -705,7 +705,7 @@ export default class MySqlDriverTest { const result = await this.driver.table('users').findMany() - assert.containsSubset(result, data) + assert.containSubset(result, data) } @Test() @@ -715,7 +715,7 @@ export default class MySqlDriverTest { const result = await this.driver.table('users').pluck('name') - assert.containsSubset(result, 'Charles Babbage') + assert.containSubset(result, 'Charles Babbage') } @Test() @@ -725,7 +725,7 @@ export default class MySqlDriverTest { const result = await this.driver.table('users').pluckMany('name') - assert.containsSubset(result, ['Charles Babbage']) + assert.containSubset(result, ['Charles Babbage']) } @Test() @@ -742,7 +742,7 @@ export default class MySqlDriverTest { const result = await this.driver.table('users').findMany() - assert.containsSubset(result, data) + assert.containSubset(result, data) } @Test() @@ -759,7 +759,7 @@ export default class MySqlDriverTest { const result = await this.driver.table('users').paginate() - assert.containsSubset(result.data, data) + assert.containSubset(result.data, data) assert.deepEqual(result.meta, { currentPage: 0, itemCount: 1, @@ -782,7 +782,7 @@ export default class MySqlDriverTest { const result = await this.driver.table('users').paginate(0, 10, '/users') - assert.containsSubset(result.data, data) + assert.containSubset(result.data, data) assert.deepEqual(result.meta, { currentPage: 0, itemCount: 1, @@ -811,7 +811,7 @@ export default class MySqlDriverTest { const result = await this.driver.table('users').create(data) - assert.containsSubset(result, data) + assert.containSubset(result, data) } @Test() @@ -831,7 +831,7 @@ export default class MySqlDriverTest { const result = await this.driver.table('users').createMany(data) - assert.containsSubset(result, data) + assert.containSubset(result, data) } @Test() @@ -848,7 +848,7 @@ export default class MySqlDriverTest { const result = await this.driver.table('users').createOrUpdate(data) - assert.containsSubset(result, data) + assert.containSubset(result, data) } @Test() @@ -858,7 +858,7 @@ export default class MySqlDriverTest { await this.driver.table('users').create(data) const result = await this.driver.table('users').createOrUpdate({ ...data, name: 'Robert Kiyosaki Millennials' }) - assert.containsSubset(result, { ...data, name: 'Robert Kiyosaki Millennials' }) + assert.containSubset(result, { ...data, name: 'Robert Kiyosaki Millennials' }) } @Test() @@ -868,7 +868,7 @@ export default class MySqlDriverTest { await this.driver.table('users').create(data) const result = await this.driver.table('users').update({ ...data, name: 'Robert Kiyosaki Millennials' }) - assert.containsSubset(result, { ...data, name: 'Robert Kiyosaki Millennials' }) + assert.containSubset(result, { ...data, name: 'Robert Kiyosaki Millennials' }) } @Test() @@ -884,7 +884,7 @@ export default class MySqlDriverTest { .whereIn('id', ['1', '2']) .update({ name: 'Robert Kiyosaki Millennials' }) - assert.containsSubset(result, [ + assert.containSubset(result, [ { id: '1', name: 'Robert Kiyosaki Millennials' }, { id: '2', name: 'Robert Kiyosaki Millennials' } ]) @@ -940,7 +940,7 @@ export default class MySqlDriverTest { const data = await this.driver.table('users').select('*').where('id', '1').findMany() - assert.containsSubset(data, [{ id: '1', name: 'Alan Turing' }]) + assert.containSubset(data, [{ id: '1', name: 'Alan Turing' }]) } @Test() @@ -958,7 +958,7 @@ export default class MySqlDriverTest { const data = await this.driver.select('*').from('users').where('id', '1').findMany() - assert.containsSubset(data, [{ id: '1', name: 'Alan Turing' }]) + assert.containSubset(data, [{ id: '1', name: 'Alan Turing' }]) } @Test() @@ -1481,7 +1481,7 @@ export default class MySqlDriverTest { const data = await this.driver.table('users').groupBy('id', 'name').havingNotIn('id', ['1', '2']).findMany() - assert.containsSubset(data, [{ id: '3', name: 'Alan Turing' }]) + assert.containSubset(data, [{ id: '3', name: 'Alan Turing' }]) } @Test() @@ -1506,7 +1506,7 @@ export default class MySqlDriverTest { .havingBetween('created_at', [new Date('12/09/2001'), new Date('12/09/2050')]) .findMany() - assert.containsSubset(data, [ + assert.containSubset(data, [ { id: '1', name: 'Robert Kiyosaki' }, { id: '2', name: 'Warren Buffet' }, { id: '3', name: 'Alan Turing' } @@ -1806,7 +1806,7 @@ export default class MySqlDriverTest { const data = await this.driver.table('users').groupBy('id', 'name').orHavingNotIn('id', ['1', '2']).findMany() - assert.containsSubset(data, [{ id: '3', name: 'Alan Turing' }]) + assert.containSubset(data, [{ id: '3', name: 'Alan Turing' }]) } @Test() @@ -1831,7 +1831,7 @@ export default class MySqlDriverTest { .orHavingBetween('created_at', [new Date('12/09/2001'), new Date('12/09/2050')]) .findMany() - assert.containsSubset(data, [ + assert.containSubset(data, [ { id: '1', name: 'Robert Kiyosaki' }, { id: '2', name: 'Warren Buffet' }, { id: '3', name: 'Alan Turing' } @@ -2249,7 +2249,7 @@ export default class MySqlDriverTest { const data = await this.driver.table('users').whereNotIn('id', ['1', '2']).findMany() - assert.containsSubset(data, [{ id: '3', name: 'Alan Turing' }]) + assert.containSubset(data, [{ id: '3', name: 'Alan Turing' }]) } @Test() @@ -2273,7 +2273,7 @@ export default class MySqlDriverTest { .whereBetween('created_at', [new Date('12/09/2001'), new Date('12/09/2050')]) .findMany() - assert.containsSubset(data, [ + assert.containSubset(data, [ { id: '1', name: 'Robert Kiyosaki' }, { id: '2', name: 'Warren Buffet' }, { id: '3', name: 'Alan Turing' } @@ -2688,7 +2688,7 @@ export default class MySqlDriverTest { const data = await this.driver.table('users').orWhereNotIn('id', ['1', '2']).findMany() - assert.containsSubset(data, [{ id: '3', name: 'Alan Turing' }]) + assert.containSubset(data, [{ id: '3', name: 'Alan Turing' }]) } @Test() @@ -2712,7 +2712,7 @@ export default class MySqlDriverTest { .orWhereBetween('created_at', [new Date('12/09/2001'), new Date('12/09/2050')]) .findMany() - assert.containsSubset(data, [ + assert.containSubset(data, [ { id: '1', name: 'Robert Kiyosaki' }, { id: '2', name: 'Warren Buffet' }, { id: '3', name: 'Alan Turing' } diff --git a/tests/unit/drivers/PostgresDriverTest.ts b/tests/unit/drivers/PostgresDriverTest.ts index 6ce907ee..c1b076fd 100644 --- a/tests/unit/drivers/PostgresDriverTest.ts +++ b/tests/unit/drivers/PostgresDriverTest.ts @@ -613,7 +613,7 @@ export default class PostgresDriverTest { const result = await this.driver.table('users').findOrFail() - assert.containsSubset(result, data) + assert.containSubset(result, data) } @Test() @@ -630,7 +630,7 @@ export default class PostgresDriverTest { return { id: '1', name: 'Marie Curie' } }) - assert.containsSubset(result, data) + assert.containSubset(result, data) } @Test() @@ -667,7 +667,7 @@ export default class PostgresDriverTest { }) .find() - assert.containsSubset(result, { id: '1', name: 'Marie Curie' }) + assert.containSubset(result, { id: '1', name: 'Marie Curie' }) } @Test() @@ -677,7 +677,7 @@ export default class PostgresDriverTest { const result = await this.driver.table('users').find() - assert.containsSubset(result, data) + assert.containSubset(result, data) } @Test() @@ -704,7 +704,7 @@ export default class PostgresDriverTest { const result = await this.driver.table('users').findMany() - assert.containsSubset(result, data) + assert.containSubset(result, data) } @Test() @@ -714,7 +714,7 @@ export default class PostgresDriverTest { const result = await this.driver.table('users').pluck('name') - assert.containsSubset(result, 'Charles Babbage') + assert.containSubset(result, 'Charles Babbage') } @Test() @@ -724,7 +724,7 @@ export default class PostgresDriverTest { const result = await this.driver.table('users').pluckMany('name') - assert.containsSubset(result, ['Charles Babbage']) + assert.containSubset(result, ['Charles Babbage']) } @Test() @@ -741,7 +741,7 @@ export default class PostgresDriverTest { const result = await this.driver.table('users').findMany() - assert.containsSubset(result, data) + assert.containSubset(result, data) } @Test() @@ -758,7 +758,7 @@ export default class PostgresDriverTest { const result = await this.driver.table('users').paginate() - assert.containsSubset(result.data, data) + assert.containSubset(result.data, data) assert.deepEqual(result.meta, { currentPage: 0, itemCount: 1, @@ -781,7 +781,7 @@ export default class PostgresDriverTest { const result = await this.driver.table('users').paginate(0, 10, '/users') - assert.containsSubset(result.data, data) + assert.containSubset(result.data, data) assert.deepEqual(result.meta, { currentPage: 0, itemCount: 1, @@ -810,7 +810,7 @@ export default class PostgresDriverTest { const result = await this.driver.table('users').create(data) - assert.containsSubset(result, data) + assert.containSubset(result, data) } @Test() @@ -830,7 +830,7 @@ export default class PostgresDriverTest { const result = await this.driver.table('users').createMany(data) - assert.containsSubset(result, data) + assert.containSubset(result, data) } @Test() @@ -847,7 +847,7 @@ export default class PostgresDriverTest { const result = await this.driver.table('users').createOrUpdate(data) - assert.containsSubset(result, data) + assert.containSubset(result, data) } @Test() @@ -857,7 +857,7 @@ export default class PostgresDriverTest { await this.driver.table('users').create(data) const result = await this.driver.table('users').createOrUpdate({ ...data, name: 'Robert Kiyosaki Millennials' }) - assert.containsSubset(result, { ...data, name: 'Robert Kiyosaki Millennials' }) + assert.containSubset(result, { ...data, name: 'Robert Kiyosaki Millennials' }) } @Test() @@ -867,7 +867,7 @@ export default class PostgresDriverTest { await this.driver.table('users').create(data) const result = await this.driver.table('users').update({ ...data, name: 'Robert Kiyosaki Millennials' }) - assert.containsSubset(result, { ...data, name: 'Robert Kiyosaki Millennials' }) + assert.containSubset(result, { ...data, name: 'Robert Kiyosaki Millennials' }) } @Test() @@ -883,7 +883,7 @@ export default class PostgresDriverTest { .whereIn('id', ['1', '2']) .update({ name: 'Robert Kiyosaki Millennials' }) - assert.containsSubset(result, [ + assert.containSubset(result, [ { id: '1', name: 'Robert Kiyosaki Millennials' }, { id: '2', name: 'Robert Kiyosaki Millennials' } ]) @@ -939,7 +939,7 @@ export default class PostgresDriverTest { const data = await this.driver.table('users').select('*').where('id', '1').findMany() - assert.containsSubset(data, [{ id: '1', name: 'Alan Turing' }]) + assert.containSubset(data, [{ id: '1', name: 'Alan Turing' }]) } @Test() @@ -957,7 +957,7 @@ export default class PostgresDriverTest { const data = await this.driver.select('*').from('users').where('id', '1').findMany() - assert.containsSubset(data, [{ id: '1', name: 'Alan Turing' }]) + assert.containSubset(data, [{ id: '1', name: 'Alan Turing' }]) } @Test() @@ -1479,7 +1479,7 @@ export default class PostgresDriverTest { const data = await this.driver.table('users').groupBy('id', 'name').havingNotIn('id', ['1', '2']).findMany() - assert.containsSubset(data, [{ id: '3', name: 'Alan Turing' }]) + assert.containSubset(data, [{ id: '3', name: 'Alan Turing' }]) } @Test() @@ -1504,7 +1504,7 @@ export default class PostgresDriverTest { .havingBetween('created_at', [new Date('12/09/2001'), new Date('12/09/2050')]) .findMany() - assert.containsSubset(data, [ + assert.containSubset(data, [ { id: '1', name: 'Robert Kiyosaki' }, { id: '2', name: 'Warren Buffet' }, { id: '3', name: 'Alan Turing' } @@ -1803,7 +1803,7 @@ export default class PostgresDriverTest { const data = await this.driver.table('users').groupBy('id', 'name').orHavingNotIn('id', ['1', '2']).findMany() - assert.containsSubset(data, [{ id: '3', name: 'Alan Turing' }]) + assert.containSubset(data, [{ id: '3', name: 'Alan Turing' }]) } @Test() @@ -1828,7 +1828,7 @@ export default class PostgresDriverTest { .orHavingBetween('created_at', [new Date('12/09/2001'), new Date('12/09/2050')]) .findMany() - assert.containsSubset(data, [ + assert.containSubset(data, [ { id: '1', name: 'Robert Kiyosaki' }, { id: '2', name: 'Warren Buffet' }, { id: '3', name: 'Alan Turing' } @@ -2245,7 +2245,7 @@ export default class PostgresDriverTest { const data = await this.driver.table('users').whereNotIn('id', ['1', '2']).findMany() - assert.containsSubset(data, [{ id: '3', name: 'Alan Turing' }]) + assert.containSubset(data, [{ id: '3', name: 'Alan Turing' }]) } @Test() @@ -2269,7 +2269,7 @@ export default class PostgresDriverTest { .whereBetween('created_at', [new Date('12/09/2001'), new Date('12/09/2050')]) .findMany() - assert.containsSubset(data, [ + assert.containSubset(data, [ { id: '1', name: 'Robert Kiyosaki' }, { id: '2', name: 'Warren Buffet' }, { id: '3', name: 'Alan Turing' } @@ -2683,7 +2683,7 @@ export default class PostgresDriverTest { const data = await this.driver.table('users').orWhereNotIn('id', ['1', '2']).findMany() - assert.containsSubset(data, [{ id: '3', name: 'Alan Turing' }]) + assert.containSubset(data, [{ id: '3', name: 'Alan Turing' }]) } @Test() @@ -2707,7 +2707,7 @@ export default class PostgresDriverTest { .orWhereBetween('created_at', [new Date('12/09/2001'), new Date('12/09/2050')]) .findMany() - assert.containsSubset(data, [ + assert.containSubset(data, [ { id: '1', name: 'Robert Kiyosaki' }, { id: '2', name: 'Warren Buffet' }, { id: '3', name: 'Alan Turing' } diff --git a/tests/unit/drivers/SqliteDriverTest.ts b/tests/unit/drivers/SqliteDriverTest.ts index 81f5fdb4..d0569b16 100644 --- a/tests/unit/drivers/SqliteDriverTest.ts +++ b/tests/unit/drivers/SqliteDriverTest.ts @@ -615,7 +615,7 @@ export default class SqliteDriverTest { const result = await this.driver.table('users').findOrFail() - assert.containsSubset(result, data) + assert.containSubset(result, data) } @Test() @@ -632,7 +632,7 @@ export default class SqliteDriverTest { return { id: '1', name: 'Marie Curie' } }) - assert.containsSubset(result, data) + assert.containSubset(result, data) } @Test() @@ -669,7 +669,7 @@ export default class SqliteDriverTest { }) .find() - assert.containsSubset(result, { id: '1', name: 'Marie Curie' }) + assert.containSubset(result, { id: '1', name: 'Marie Curie' }) } @Test() @@ -679,7 +679,7 @@ export default class SqliteDriverTest { const result = await this.driver.table('users').find() - assert.containsSubset(result, data) + assert.containSubset(result, data) } @Test() @@ -706,7 +706,7 @@ export default class SqliteDriverTest { const result = await this.driver.table('users').findMany() - assert.containsSubset(result, data) + assert.containSubset(result, data) } @Test() @@ -716,7 +716,7 @@ export default class SqliteDriverTest { const result = await this.driver.table('users').pluck('name') - assert.containsSubset(result, 'Charles Babbage') + assert.containSubset(result, 'Charles Babbage') } @Test() @@ -726,7 +726,7 @@ export default class SqliteDriverTest { const result = await this.driver.table('users').pluckMany('name') - assert.containsSubset(result, ['Charles Babbage']) + assert.containSubset(result, ['Charles Babbage']) } @Test() @@ -743,7 +743,7 @@ export default class SqliteDriverTest { const result = await this.driver.table('users').findMany() - assert.containsSubset(result, data) + assert.containSubset(result, data) } @Test() @@ -760,7 +760,7 @@ export default class SqliteDriverTest { const result = await this.driver.table('users').paginate() - assert.containsSubset(result.data, data) + assert.containSubset(result.data, data) assert.deepEqual(result.meta, { currentPage: 0, itemCount: 1, @@ -783,7 +783,7 @@ export default class SqliteDriverTest { const result = await this.driver.table('users').paginate(0, 10, '/users') - assert.containsSubset(result.data, data) + assert.containSubset(result.data, data) assert.deepEqual(result.meta, { currentPage: 0, itemCount: 1, @@ -812,7 +812,7 @@ export default class SqliteDriverTest { const result = await this.driver.table('users').create(data) - assert.containsSubset(result, data) + assert.containSubset(result, data) } @Test() @@ -832,7 +832,7 @@ export default class SqliteDriverTest { const result = await this.driver.table('users').createMany(data) - assert.containsSubset(result, data) + assert.containSubset(result, data) } @Test() @@ -849,7 +849,7 @@ export default class SqliteDriverTest { const result = await this.driver.table('users').createOrUpdate(data) - assert.containsSubset(result, data) + assert.containSubset(result, data) } @Test() @@ -859,7 +859,7 @@ export default class SqliteDriverTest { await this.driver.table('users').create(data) const result = await this.driver.table('users').createOrUpdate({ ...data, name: 'Robert Kiyosaki Millennials' }) - assert.containsSubset(result, { ...data, name: 'Robert Kiyosaki Millennials' }) + assert.containSubset(result, { ...data, name: 'Robert Kiyosaki Millennials' }) } @Test() @@ -869,7 +869,7 @@ export default class SqliteDriverTest { await this.driver.table('users').create(data) const result = await this.driver.table('users').update({ ...data, name: 'Robert Kiyosaki Millennials' }) - assert.containsSubset(result, { ...data, name: 'Robert Kiyosaki Millennials' }) + assert.containSubset(result, { ...data, name: 'Robert Kiyosaki Millennials' }) } @Test() @@ -885,7 +885,7 @@ export default class SqliteDriverTest { .whereIn('id', ['1', '2']) .update({ name: 'Robert Kiyosaki Millennials' }) - assert.containsSubset(result, [ + assert.containSubset(result, [ { id: '1', name: 'Robert Kiyosaki Millennials' }, { id: '2', name: 'Robert Kiyosaki Millennials' } ]) @@ -941,7 +941,7 @@ export default class SqliteDriverTest { const data = await this.driver.table('users').select('*').where('id', '1').findMany() - assert.containsSubset(data, [{ id: '1', name: 'Alan Turing' }]) + assert.containSubset(data, [{ id: '1', name: 'Alan Turing' }]) } @Test() @@ -959,7 +959,7 @@ export default class SqliteDriverTest { const data = await this.driver.select('*').from('users').where('id', '1').findMany() - assert.containsSubset(data, [{ id: '1', name: 'Alan Turing' }]) + assert.containSubset(data, [{ id: '1', name: 'Alan Turing' }]) } @Test() @@ -1482,7 +1482,7 @@ export default class SqliteDriverTest { const data = await this.driver.table('users').groupBy('id', 'name').havingNotIn('id', ['1', '2']).findMany() - assert.containsSubset(data, [{ id: '3', name: 'Alan Turing' }]) + assert.containSubset(data, [{ id: '3', name: 'Alan Turing' }]) } @Test() @@ -1503,7 +1503,7 @@ export default class SqliteDriverTest { const data = await this.driver.table('users').groupBy('id', 'name').havingBetween('id', ['1', '3']).findMany() - assert.containsSubset(data, [ + assert.containSubset(data, [ { id: '1', name: 'Robert Kiyosaki' }, { id: '2', name: 'Warren Buffet' }, { id: '3', name: 'Alan Turing' } @@ -1799,7 +1799,7 @@ export default class SqliteDriverTest { const data = await this.driver.table('users').groupBy('id', 'name').orHavingNotIn('id', ['1', '2']).findMany() - assert.containsSubset(data, [{ id: '3', name: 'Alan Turing' }]) + assert.containSubset(data, [{ id: '3', name: 'Alan Turing' }]) } @Test() @@ -1820,7 +1820,7 @@ export default class SqliteDriverTest { const data = await this.driver.table('users').groupBy('id', 'name').orHavingBetween('id', ['1', '3']).findMany() - assert.containsSubset(data, [ + assert.containSubset(data, [ { id: '1', name: 'Robert Kiyosaki' }, { id: '2', name: 'Warren Buffet' }, { id: '3', name: 'Alan Turing' } @@ -2233,7 +2233,7 @@ export default class SqliteDriverTest { const data = await this.driver.table('users').whereNotIn('id', ['1', '2']).findMany() - assert.containsSubset(data, [{ id: '3', name: 'Alan Turing' }]) + assert.containSubset(data, [{ id: '3', name: 'Alan Turing' }]) } @Test() @@ -2254,7 +2254,7 @@ export default class SqliteDriverTest { const data = await this.driver.table('users').whereBetween('id', ['1', '3']).findMany() - assert.containsSubset(data, [ + assert.containSubset(data, [ { id: '1', name: 'Robert Kiyosaki' }, { id: '2', name: 'Warren Buffet' }, { id: '3', name: 'Alan Turing' } @@ -2665,7 +2665,7 @@ export default class SqliteDriverTest { const data = await this.driver.table('users').orWhereNotIn('id', ['1', '2']).findMany() - assert.containsSubset(data, [{ id: '3', name: 'Alan Turing' }]) + assert.containSubset(data, [{ id: '3', name: 'Alan Turing' }]) } @Test() @@ -2686,7 +2686,7 @@ export default class SqliteDriverTest { const data = await this.driver.table('users').orWhereBetween('id', ['1', '3']).findMany() - assert.containsSubset(data, [ + assert.containSubset(data, [ { id: '1', name: 'Robert Kiyosaki' }, { id: '2', name: 'Warren Buffet' }, { id: '3', name: 'Alan Turing' } diff --git a/tests/unit/models/BaseModelTest.ts b/tests/unit/models/BaseModelTest.ts index 88560df3..fa891938 100644 --- a/tests/unit/models/BaseModelTest.ts +++ b/tests/unit/models/BaseModelTest.ts @@ -575,13 +575,12 @@ export default class BaseModelTest { assert.calledWith(Database.driver.createMany, [ Mock.match({ id: '1', name: 'lenon', metadata1: 'random-1', metadata2: 'random-2' }) ]) - assert.containsSubset(user, { + assert.containSubset(user, { id: '1', name: 'lenon', metadata1: 'random-1', metadata2: 'random-2', - deletedAt: null, - original: { id: '1', name: 'lenon', metadata1: 'random-1', metadata2: 'random-2', deletedAt: null } + deletedAt: null }) } @@ -607,13 +606,12 @@ export default class BaseModelTest { Database.driver.update, Mock.match({ id: '2', name: 'txsoura', metadata1: 'random-1', metadata2: 'random-2' }) ) - assert.containsSubset(user, { + assert.containSubset(user, { id: '2', name: 'txsoura', metadata1: 'random-1', metadata2: 'random-2', deletedAt: null, - original: { id: '2', name: 'txsoura', metadata1: 'random-1', metadata2: 'random-2', deletedAt: null } }) } @@ -633,13 +631,12 @@ export default class BaseModelTest { await user.save() assert.calledWith(Database.driver.update, Mock.match({ metadata1: 'random-1', metadata2: 'random-2' })) - assert.containsSubset(user, { + assert.containSubset(user, { id: '1', name: 'lenon', metadata1: 'random-1', metadata2: 'random-2', deletedAt: null, - original: { id: '1', name: 'lenon', metadata1: 'random-1', metadata2: 'random-2', deletedAt: null } }) } @@ -666,21 +663,13 @@ export default class BaseModelTest { assert.notCalled(Database.driver.update) assert.notCalled(Database.driver.createMany) - assert.containsSubset(user, { + assert.containSubset(user, { id: '1', name: 'lenon', email: 'lenon@athenna.io', metadata1: 'random-1', metadata2: 'random-2', - deletedAt: null, - original: { - id: '1', - name: 'lenon', - email: 'lenon@athenna.io', - metadata1: 'random-1', - metadata2: 'random-2', - deletedAt: null - } + deletedAt: null }) } diff --git a/tests/unit/models/factories/ModelGeneratorTest.ts b/tests/unit/models/factories/ModelGeneratorTest.ts index b001b77c..3f7fc10e 100644 --- a/tests/unit/models/factories/ModelGeneratorTest.ts +++ b/tests/unit/models/factories/ModelGeneratorTest.ts @@ -29,7 +29,7 @@ export default class ModelGeneratorTest { const data = await new ModelGenerator(User, User.schema()).generateOne({ id: '1' }) - assert.deepEqual(data, { id: '1', original: { id: '1' } }) + assert.deepEqual(data, { id: '1' }) } @Test() @@ -41,7 +41,7 @@ export default class ModelGeneratorTest { const data = await new ModelGenerator(User, User.schema()).generateOne({ _id: '1' }) - assert.deepEqual(data, { id: '1', original: { id: '1' } }) + assert.deepEqual(data, { id: '1' }) } @Test() @@ -65,7 +65,7 @@ export default class ModelGeneratorTest { const data = await new ModelGenerator(User, User.schema()).generateMany([{ id: '1' }]) - assert.deepEqual(data, [{ id: '1', original: { id: '1' } }]) + assert.deepEqual(data, [{ id: '1' }]) } @Test() @@ -77,7 +77,7 @@ export default class ModelGeneratorTest { const data = await new ModelGenerator(User, User.schema()).generateMany([{ _id: '1' }]) - assert.deepEqual(data, [{ id: '1', original: { id: '1' } }]) + assert.deepEqual(data, [{ id: '1' }]) } @Test() @@ -153,7 +153,7 @@ export default class ModelGeneratorTest { const data = await new ModelGenerator(User, schema).generateOne({ _id: '1' }) - assert.deepEqual(data, { id: '1', original: { id: '1' } }) + assert.deepEqual(data, { id: '1' }) } @Test() @@ -201,6 +201,6 @@ export default class ModelGeneratorTest { const data = await new ModelGenerator(User, schema).generateMany([{ _id: '1' }]) - assert.deepEqual(data, [{ id: '1', original: { id: '1' } }]) + assert.deepEqual(data, [{ id: '1' }]) } } diff --git a/tests/unit/models/relations/BelongsTo/BelongsToRelationTest.ts b/tests/unit/models/relations/BelongsTo/BelongsToRelationTest.ts index 8370d308..5ae96b28 100644 --- a/tests/unit/models/relations/BelongsTo/BelongsToRelationTest.ts +++ b/tests/unit/models/relations/BelongsTo/BelongsToRelationTest.ts @@ -89,8 +89,7 @@ export default class BelongsToRelationTest { assert.deepEqual(profile, { id: 1, userId: 1, - user: { id: 1, original: { id: 1 } }, - original: { id: 1, userId: 1 } + user: { id: 1 } }) } @@ -134,8 +133,7 @@ export default class BelongsToRelationTest { { id: 1, userId: 1, - user: { id: 1, original: { id: 1 } }, - original: { id: 1, userId: 1 } + user: { id: 1 } } ]) } @@ -181,8 +179,7 @@ export default class BelongsToRelationTest { assert.deepEqual(product, { id: 1, userId: 1, - user: { id: 1, original: { id: 1 } }, - original: { id: 1, userId: 1 } + user: { id: 1 } }) } @@ -239,8 +236,7 @@ export default class BelongsToRelationTest { { id: 1, userId: 1, - user: { id: 1, original: { id: 1 } }, - original: { id: 1, userId: 1 } + user: { id: 1 } } ]) } @@ -266,8 +262,7 @@ export default class BelongsToRelationTest { assert.deepEqual(profile, { id: 1, userId: 1, - user: { id: 1, original: { id: 1 } }, - original: { id: 1, userId: 1 } + user: { id: 1 } }) } @@ -292,8 +287,7 @@ export default class BelongsToRelationTest { assert.deepEqual(product, { id: 1, userId: 1, - user: { id: 1, original: { id: 1 } }, - original: { id: 1, userId: 1 } + user: { id: 1 } }) } diff --git a/tests/unit/models/relations/BelongsToMany/BelongsToManyRelationTest.ts b/tests/unit/models/relations/BelongsToMany/BelongsToManyRelationTest.ts index 47be81e3..84a6ab1f 100644 --- a/tests/unit/models/relations/BelongsToMany/BelongsToManyRelationTest.ts +++ b/tests/unit/models/relations/BelongsToMany/BelongsToManyRelationTest.ts @@ -89,8 +89,7 @@ export default class BelongsToManyRelationTest { assert.deepEqual(course, { id: 1, name: 'Math', - students: [{ id: 1, original: { id: 1 } }], - original: { id: 1, name: 'Math' } + students: [{ id: 1 }] }) } @@ -134,8 +133,7 @@ export default class BelongsToManyRelationTest { { id: 1, name: 'Math', - students: [{ id: 1, original: { id: 1 } }], - original: { id: 1, name: 'Math' } + students: [{ id: 1 }] } ]) } @@ -179,8 +177,7 @@ export default class BelongsToManyRelationTest { assert.deepEqual(student, { id: 1, name: 'lenon', - courses: [{ id: 1, original: { id: 1 } }], - original: { id: 1, name: 'lenon' } + courses: [{ id: 1 }] }) } @@ -226,8 +223,7 @@ export default class BelongsToManyRelationTest { { id: 1, name: 'lenon', - courses: [{ id: 1, original: { id: 1 } }], - original: { id: 1, name: 'lenon' } + courses: [{ id: 1 }] } ]) } diff --git a/tests/unit/models/relations/HasMany/HasManyRelationTest.ts b/tests/unit/models/relations/HasMany/HasManyRelationTest.ts index 10953a91..8547129e 100644 --- a/tests/unit/models/relations/HasMany/HasManyRelationTest.ts +++ b/tests/unit/models/relations/HasMany/HasManyRelationTest.ts @@ -62,8 +62,7 @@ export default class HasManyRelationTest { assert.instanceOf(user.products[0], Product) assert.deepEqual(user, { id: 1, - products: [{ id: 1, userId: 1, original: { id: 1, userId: 1 } }], - original: { id: 1 } + products: [{ id: 1 }] }) } @@ -87,8 +86,7 @@ export default class HasManyRelationTest { assert.deepEqual(users, [ { id: 1, - products: [{ id: 1, userId: 1, original: { id: 1, userId: 1 } }], - original: { id: 1 } + products: [{ id: 1, userId: 1 }] } ]) } @@ -133,8 +131,7 @@ export default class HasManyRelationTest { assert.instanceOf(user.products[0], Product) assert.deepEqual(user, { id: 1, - products: [{ id: 1, userId: 1, original: { id: 1, userId: 1 } }], - original: { id: 1 } + products: [{ id: 1, userId: 1 }] }) } diff --git a/tests/unit/models/relations/HasOne/HasOneRelationTest.ts b/tests/unit/models/relations/HasOne/HasOneRelationTest.ts index eebf1ef6..eb5e265b 100644 --- a/tests/unit/models/relations/HasOne/HasOneRelationTest.ts +++ b/tests/unit/models/relations/HasOne/HasOneRelationTest.ts @@ -61,8 +61,7 @@ export default class HasOneRelationTest { assert.instanceOf(user.profile, Profile) assert.deepEqual(user, { id: 1, - profile: { id: 1, userId: 1, original: { id: 1, userId: 1 } }, - original: { id: 1 } + profile: { id: 1, userId: 1 } }) } @@ -86,8 +85,7 @@ export default class HasOneRelationTest { assert.deepEqual(users, [ { id: 1, - profile: { id: 1, userId: 1, original: { id: 1, userId: 1 } }, - original: { id: 1 } + profile: { id: 1, userId: 1 } } ]) } @@ -132,8 +130,7 @@ export default class HasOneRelationTest { assert.instanceOf(user.profile, Profile) assert.deepEqual(user, { id: 1, - profile: { id: 1, userId: 1, original: { id: 1, userId: 1 } }, - original: { id: 1 } + profile: { id: 1, userId: 1 } }) } } From f1fbe437f43de875bb1e183af1c232ff47e00430 Mon Sep 17 00:00:00 2001 From: jlenon7 Date: Fri, 8 Aug 2025 11:41:03 -0300 Subject: [PATCH 2/2] test(model): use containSubst to validate --- tests/unit/models/BaseModelTest.ts | 4 ++-- .../relations/BelongsTo/BelongsToRelationTest.ts | 12 ++++++------ .../BelongsToMany/BelongsToManyRelationTest.ts | 8 ++++---- .../models/relations/HasMany/HasManyRelationTest.ts | 6 +++--- .../models/relations/HasOne/HasOneRelationTest.ts | 6 +++--- 5 files changed, 18 insertions(+), 18 deletions(-) diff --git a/tests/unit/models/BaseModelTest.ts b/tests/unit/models/BaseModelTest.ts index fa891938..33fc70ef 100644 --- a/tests/unit/models/BaseModelTest.ts +++ b/tests/unit/models/BaseModelTest.ts @@ -611,7 +611,7 @@ export default class BaseModelTest { name: 'txsoura', metadata1: 'random-1', metadata2: 'random-2', - deletedAt: null, + deletedAt: null }) } @@ -636,7 +636,7 @@ export default class BaseModelTest { name: 'lenon', metadata1: 'random-1', metadata2: 'random-2', - deletedAt: null, + deletedAt: null }) } diff --git a/tests/unit/models/relations/BelongsTo/BelongsToRelationTest.ts b/tests/unit/models/relations/BelongsTo/BelongsToRelationTest.ts index 5ae96b28..67a417d4 100644 --- a/tests/unit/models/relations/BelongsTo/BelongsToRelationTest.ts +++ b/tests/unit/models/relations/BelongsTo/BelongsToRelationTest.ts @@ -86,7 +86,7 @@ export default class BelongsToRelationTest { assert.instanceOf(profile, Profile) assert.instanceOf(profile.user, User) - assert.deepEqual(profile, { + assert.containSubset(profile, { id: 1, userId: 1, user: { id: 1 } @@ -129,7 +129,7 @@ export default class BelongsToRelationTest { assert.instanceOf(profiles[0], Profile) assert.instanceOf(profiles[0].user, User) - assert.deepEqual(profiles, [ + assert.containSubset(profiles, [ { id: 1, userId: 1, @@ -176,7 +176,7 @@ export default class BelongsToRelationTest { assert.instanceOf(product, Product) assert.instanceOf(product.user, User) - assert.deepEqual(product, { + assert.containSubset(product, { id: 1, userId: 1, user: { id: 1 } @@ -232,7 +232,7 @@ export default class BelongsToRelationTest { assert.instanceOf(products[0], Product) assert.instanceOf(products[0].user, User) - assert.deepEqual(products, [ + assert.containSubset(products, [ { id: 1, userId: 1, @@ -259,7 +259,7 @@ export default class BelongsToRelationTest { assert.instanceOf(profile, Profile) assert.instanceOf(profile.user, User) - assert.deepEqual(profile, { + assert.containSubset(profile, { id: 1, userId: 1, user: { id: 1 } @@ -284,7 +284,7 @@ export default class BelongsToRelationTest { assert.instanceOf(product, Product) assert.instanceOf(product.user, User) - assert.deepEqual(product, { + assert.containSubset(product, { id: 1, userId: 1, user: { id: 1 } diff --git a/tests/unit/models/relations/BelongsToMany/BelongsToManyRelationTest.ts b/tests/unit/models/relations/BelongsToMany/BelongsToManyRelationTest.ts index 84a6ab1f..ec77d3c2 100644 --- a/tests/unit/models/relations/BelongsToMany/BelongsToManyRelationTest.ts +++ b/tests/unit/models/relations/BelongsToMany/BelongsToManyRelationTest.ts @@ -86,7 +86,7 @@ export default class BelongsToManyRelationTest { assert.instanceOf(course, Course) assert.instanceOf(course.students[0], Student) - assert.deepEqual(course, { + assert.containSubset(course, { id: 1, name: 'Math', students: [{ id: 1 }] @@ -129,7 +129,7 @@ export default class BelongsToManyRelationTest { assert.instanceOf(courses[0], Course) assert.instanceOf(courses[0].students[0], Student) - assert.deepEqual(courses, [ + assert.containSubset(courses, [ { id: 1, name: 'Math', @@ -174,7 +174,7 @@ export default class BelongsToManyRelationTest { assert.instanceOf(student, Student) assert.instanceOf(student.courses[0], Course) - assert.deepEqual(student, { + assert.containSubset(student, { id: 1, name: 'lenon', courses: [{ id: 1 }] @@ -219,7 +219,7 @@ export default class BelongsToManyRelationTest { assert.instanceOf(students[0], Student) assert.instanceOf(students[0].courses[0], Course) - assert.deepEqual(students, [ + assert.containSubset(students, [ { id: 1, name: 'lenon', diff --git a/tests/unit/models/relations/HasMany/HasManyRelationTest.ts b/tests/unit/models/relations/HasMany/HasManyRelationTest.ts index 8547129e..1b319c66 100644 --- a/tests/unit/models/relations/HasMany/HasManyRelationTest.ts +++ b/tests/unit/models/relations/HasMany/HasManyRelationTest.ts @@ -60,7 +60,7 @@ export default class HasManyRelationTest { assert.instanceOf(user, User) assert.instanceOf(user.products[0], Product) - assert.deepEqual(user, { + assert.containSubset(user, { id: 1, products: [{ id: 1 }] }) @@ -83,7 +83,7 @@ export default class HasManyRelationTest { assert.instanceOf(users[0], User) assert.instanceOf(users[0].products[0], Product) - assert.deepEqual(users, [ + assert.containSubset(users, [ { id: 1, products: [{ id: 1, userId: 1 }] @@ -129,7 +129,7 @@ export default class HasManyRelationTest { assert.instanceOf(user, User) assert.instanceOf(user.products[0], Product) - assert.deepEqual(user, { + assert.containSubset(user, { id: 1, products: [{ id: 1, userId: 1 }] }) diff --git a/tests/unit/models/relations/HasOne/HasOneRelationTest.ts b/tests/unit/models/relations/HasOne/HasOneRelationTest.ts index eb5e265b..4be05d30 100644 --- a/tests/unit/models/relations/HasOne/HasOneRelationTest.ts +++ b/tests/unit/models/relations/HasOne/HasOneRelationTest.ts @@ -59,7 +59,7 @@ export default class HasOneRelationTest { assert.instanceOf(user, User) assert.instanceOf(user.profile, Profile) - assert.deepEqual(user, { + assert.containSubset(user, { id: 1, profile: { id: 1, userId: 1 } }) @@ -82,7 +82,7 @@ export default class HasOneRelationTest { assert.instanceOf(users[0], User) assert.instanceOf(users[0].profile, Profile) - assert.deepEqual(users, [ + assert.containSubset(users, [ { id: 1, profile: { id: 1, userId: 1 } @@ -128,7 +128,7 @@ export default class HasOneRelationTest { assert.instanceOf(user, User) assert.instanceOf(user.profile, Profile) - assert.deepEqual(user, { + assert.containSubset(user, { id: 1, profile: { id: 1, userId: 1 } })