diff --git a/package-lock.json b/package-lock.json index 6e88d177..f510b233 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,13 +5,13 @@ "requires": true, "dependencies": { "@adonisjs/ace": { - "version": "6.8.0", - "resolved": "https://registry.npmjs.org/@adonisjs/ace/-/ace-6.8.0.tgz", - "integrity": "sha512-gUoQ1GCgl9FTEn2pRJv00vGAeet1e3XE+yaW8kBiGgv53oOIWuGDxy68Tz5edgfOd4n9xT3jf9WXtDrvB8dItA==", + "version": "6.8.1", + "resolved": "https://registry.npmjs.org/@adonisjs/ace/-/ace-6.8.1.tgz", + "integrity": "sha512-ZKPqH/YpJrmOdezQoD1VG3S7fZA1GZrrX4r3l5L/r6tx81DxwV4j7M74BvCKrWz+lirIq2D3m4JqW0zLXbPv3Q==", "dev": true, "requires": { "@poppinss/colors": "^1.0.2", - "@poppinss/fancy-logs": "^1.3.2", + "@poppinss/fancy-logs": "^1.3.3", "@poppinss/prompts": "^1.0.5", "@poppinss/utils": "^2.1.1", "camel-case": "^4.1.1", @@ -53,9 +53,9 @@ } }, "@adonisjs/fold": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@adonisjs/fold/-/fold-6.3.0.tgz", - "integrity": "sha512-9K5Dy7bLIlAMP+Z/X2oCTNDQJJSpbUrp5eOIwFDdvUEzH/SeYZMOXS2SAog0jswsDdtmoMoxuLR/TYoARo3kCg==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/@adonisjs/fold/-/fold-6.3.1.tgz", + "integrity": "sha512-gpSyO5a0CqPfhaopX8MKViXzSOPK2hQADv8kmY4Ks4U/arcMiQ8+dxT8KzFOO6Saxunou5ZzzzH9iIfLkk0Qrw==", "dev": true, "requires": { "@poppinss/utils": "^2.1.1", @@ -480,9 +480,9 @@ } }, "@poppinss/fancy-logs": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@poppinss/fancy-logs/-/fancy-logs-1.3.2.tgz", - "integrity": "sha512-PQ7Z45AHZw4HHFB74OwkcffwIOEo+pBqe2VVC3YQBXvjVSqF5hO1dchxfkqWBJEwCSfhNRFRypUUcLlWllYVAQ==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@poppinss/fancy-logs/-/fancy-logs-1.3.3.tgz", + "integrity": "sha512-n9kYB+1UnWV+5T/ba+yYnxAviUeiRfDSlsskw0xx2tmMxtrTX7CH0NFCJn82Jf15PdY5qkTD2aPAYDNyHmdKmg==", "dev": true, "requires": { "@poppinss/colors": "^1.0.2", @@ -2295,9 +2295,9 @@ } }, "enquirer": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.2.tgz", - "integrity": "sha512-PLhTMPUXlnaIv9D3Cq3/Zr1xb7soeDDgunobyCmYLUG19n24dvC8i+ZZgm2DekGpDnx7JvFSHV7lxfM58PMtbA==", + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.4.tgz", + "integrity": "sha512-pkYrrDZumL2VS6VBGDhqbajCM2xpkUNLuKfGPjfKaSIBKYopQbqEFyrOkRMIb2HDR/rO1kGhEt/5twBwtzKBXw==", "dev": true, "requires": { "ansi-colors": "^3.2.1" diff --git a/package.json b/package.json index 59cbc1de..6e2c142f 100644 --- a/package.json +++ b/package.json @@ -55,9 +55,9 @@ "@adonisjs/core": "2.x.x" }, "devDependencies": { - "@adonisjs/ace": "^6.8.0", + "@adonisjs/ace": "^6.8.1", "@adonisjs/application": "^1.3.3", - "@adonisjs/fold": "^6.3.0", + "@adonisjs/fold": "^6.3.1", "@adonisjs/logger": "^1.1.7", "@adonisjs/mrm-preset": "^2.2.3", "@adonisjs/profiler": "^1.2.4", diff --git a/src/Orm/Adapter/index.ts b/src/Orm/Adapter/index.ts index 17794e66..ae9ba4b6 100644 --- a/src/Orm/Adapter/index.ts +++ b/src/Orm/Adapter/index.ts @@ -67,7 +67,7 @@ export class Adapter implements AdapterContract { const result = await query.insert(attributes) if (modelConstructor.increments) { instance.$consumeAdapterResult({ - [modelConstructor.$resolveColumnName(modelConstructor.primaryKey)]: result[0], + [modelConstructor.$resolveCastKey(modelConstructor.primaryKey)]: result[0], }) } } diff --git a/test/orm/adapter.spec.ts b/test/orm/adapter.spec.ts index 826eba44..cf4ad4d9 100644 --- a/test/orm/adapter.spec.ts +++ b/test/orm/adapter.spec.ts @@ -287,4 +287,27 @@ test.group('Adapter', (group) => { const users = await db.from('users').select('*') assert.lengthOf(users, 1) }) + + test('set primary key value when cast key is different from model key', async (assert) => { + class User extends BaseModel { + public static $table = 'users' + + @column({ isPrimary: true, castAs: 'id' }) + public userId: number + + @column() + public username: string + } + + User.boot() + + const user = new User() + user.username = 'virk' + await user.save() + + assert.exists(user.userId) + assert.deepEqual(user.$attributes, { username: 'virk', userId: user.userId }) + assert.isFalse(user.isDirty) + assert.isTrue(user.isPersisted) + }) })