diff --git a/__tests__/DbTable.js b/__tests__/DbTable.js index 2f009fc..3aa20bb 100644 --- a/__tests__/DbTable.js +++ b/__tests__/DbTable.js @@ -28,7 +28,23 @@ test ('good', () => { expect (this.name).toBe('t') return [ {id: 1} ] - } + }, + triggers: [ + { + phase : 'BEFORE INSERT', + action : 'FOR EACH ROW', + sql : /*sql*/` + BEGIN + RETURN NEW; + END; + `, + }, + { + phase : 'AFTER INSERT', + action : 'FOR EACH ROW', + sql : null, + }, + ], }) expect (r.columns.id.type).toBe ('int') diff --git a/__tests__/DbTrigger.js b/__tests__/DbTrigger.js index f63381d..4eb6809 100644 --- a/__tests__/DbTrigger.js +++ b/__tests__/DbTrigger.js @@ -11,7 +11,7 @@ test ('bad', () => { expect (() => new DbTrigger ({name: 't', phase: 'BEFORE', sql: 1})).toThrow () expect (() => new DbTrigger ({name: 't', phase: true, sql: 'NULL;'})).toThrow () expect (() => new DbTrigger ({name: 't', phase: true, sql: function () {return ''}})).toThrow () - + expect (() => new DbTrigger ({name: 't', phase: true, sql: null})).toThrow () }) test ('not bad', () => { @@ -24,6 +24,7 @@ test ('not bad', () => { columns: {id: 'int'}, pk: ['id'], triggers: [ + {name: 't', phase: 'BEFORE UPDATE', sql: 'NULL;'}, {name: 't', phase: 'BEFORE UPDATE', sql: 'NULL;'}, {name: 't1', phase: 'AFTER UPDATE', sql: function () { @@ -34,6 +35,7 @@ test ('not bad', () => { return 'NULL;' }}, + {name: 't', phase: 'BEFORE UPDATE', sql: null}, ] }) diff --git a/lib/model/DbTable.js b/lib/model/DbTable.js index 3bc351f..76476b9 100644 --- a/lib/model/DbTable.js +++ b/lib/model/DbTable.js @@ -30,17 +30,18 @@ class DbTable extends DbRelation { for (let i = 0; i < length; i ++) { - const o = triggers [i] + const o = triggers [i]; if (o.sql !== null) { - o.table = this - - if (!o.name) o.name = lang.getTriggerName (this, i) - - const trigger = new DbTrigger (o) + o.table = this - trigger.setLang (lang) + if (!o.name) o.name = lang.getTriggerName (this, i) + + const trigger = new DbTrigger (o) + + trigger.setLang (lang) - triggers [i] = trigger + triggers [i] = trigger + } } diff --git a/package-lock.json b/package-lock.json index 177c03d..9abb838 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "doix-db", - "version": "1.0.68", + "version": "1.0.69", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "doix-db", - "version": "1.0.68", + "version": "1.0.69", "license": "MIT", "dependencies": { "string-escape-map": "^1.0.0" diff --git a/package.json b/package.json index de612b9..5669eec 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "doix-db", - "version": "1.0.68", + "version": "1.0.69", "description": "Shared database related code for doix", "main": "index.js", "files": [