mirror of
https://github.com/knex/knex.git
synced 2025-09-02 12:57:01 +00:00
additional tests & data for #219
This commit is contained in:
parent
1c403a5a40
commit
aa47c24568
@ -39,7 +39,24 @@ module.exports = function(knex) {
|
||||
logins: 2,
|
||||
created_at: new Date(),
|
||||
updated_at: new Date()
|
||||
}], 'id');
|
||||
}], 'id').then(function() {
|
||||
return knex('composite_key_test').insert([{
|
||||
column_a: 1,
|
||||
column_b: 1,
|
||||
details: 'One, One, One',
|
||||
status: 1
|
||||
}, {
|
||||
column_a: 1,
|
||||
column_b: 2,
|
||||
details: 'One, Two, Zero',
|
||||
status: 0
|
||||
}, {
|
||||
column_a: 1,
|
||||
column_b: 3,
|
||||
details: 'One, Three, Zero',
|
||||
status: 0
|
||||
}]);
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
|
@ -136,17 +136,19 @@ module.exports = function(knex) {
|
||||
if (knex.client.dialect != 'sqlite3') {
|
||||
return knex('composite_key_test')
|
||||
.whereIn(['column_a', 'column_b'], [[1, 1], [1, 2]])
|
||||
.logMe()
|
||||
.select();
|
||||
} else {
|
||||
return true
|
||||
return true;
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
|
||||
it('handles multi-column "or where in" cases', function() {
|
||||
if (knex.client.dialect != 'sqlite3') {
|
||||
return knex('composite_key_test')
|
||||
.where('status', 1)
|
||||
.logMe()
|
||||
.whereIn(['column_a', 'column_b'], [[1, 1], [1, 2]])
|
||||
.select();
|
||||
} else {
|
||||
@ -155,11 +157,11 @@ module.exports = function(knex) {
|
||||
|
||||
|
||||
});
|
||||
|
||||
|
||||
it('handles "where exists"', function() {
|
||||
|
||||
return knex('accounts')
|
||||
.whereExists(function(qb) {
|
||||
.whereExists(function() {
|
||||
this.select('id').from('test_table_two').where({id: 1});
|
||||
})
|
||||
.select();
|
||||
|
@ -86,8 +86,8 @@ module.exports = {
|
||||
email: 'test@example.com',
|
||||
logins: 1,
|
||||
about: 'Lorem ipsum Dolore labore incididunt enim.',
|
||||
created_at: 1385400239318,
|
||||
updated_at: 1385400239318,
|
||||
created_at: 1395875717488,
|
||||
updated_at: 1395875717488,
|
||||
phone: null,
|
||||
details: 'Lorem ipsum Minim nostrud Excepteur consectetur enim ut qui sint in veniam in nulla anim do cillum sunt voluptate Duis non incididunt.'
|
||||
},{
|
||||
@ -97,8 +97,8 @@ module.exports = {
|
||||
email: 'test2@example.com',
|
||||
logins: 1,
|
||||
about: 'Lorem ipsum Dolore labore incididunt enim.',
|
||||
created_at: 1385400239319,
|
||||
updated_at: 1385400239319,
|
||||
created_at: 1395875717489,
|
||||
updated_at: 1395875717489,
|
||||
phone: null,
|
||||
details: 'Lorem ipsum Minim nostrud Excepteur consectetur enim ut qui sint in veniam in nulla anim do cillum sunt voluptate Duis non incididunt.'
|
||||
},{
|
||||
@ -108,8 +108,8 @@ module.exports = {
|
||||
email: 'test3@example.com',
|
||||
logins: 2,
|
||||
about: 'Lorem ipsum Dolore labore incididunt enim.',
|
||||
created_at: 1385400239319,
|
||||
updated_at: 1385400239319,
|
||||
created_at: 1395875717489,
|
||||
updated_at: 1395875717489,
|
||||
phone: null,
|
||||
details: ''
|
||||
}]
|
||||
@ -268,8 +268,8 @@ module.exports = {
|
||||
email: 'test@example.com',
|
||||
logins: 1,
|
||||
about: 'Lorem ipsum Dolore labore incididunt enim.',
|
||||
created_at: 1385400239318,
|
||||
updated_at: 1385400239318,
|
||||
created_at: 1395875717488,
|
||||
updated_at: 1395875717488,
|
||||
phone: null,
|
||||
details: 'Lorem ipsum Minim nostrud Excepteur consectetur enim ut qui sint in veniam in nulla anim do cillum sunt voluptate Duis non incididunt.'
|
||||
},{
|
||||
@ -279,8 +279,8 @@ module.exports = {
|
||||
email: 'test2@example.com',
|
||||
logins: 1,
|
||||
about: 'Lorem ipsum Dolore labore incididunt enim.',
|
||||
created_at: 1385400239319,
|
||||
updated_at: 1385400239319,
|
||||
created_at: 1395875717489,
|
||||
updated_at: 1395875717489,
|
||||
phone: null,
|
||||
details: 'Lorem ipsum Minim nostrud Excepteur consectetur enim ut qui sint in veniam in nulla anim do cillum sunt voluptate Duis non incididunt.'
|
||||
},{
|
||||
@ -290,8 +290,8 @@ module.exports = {
|
||||
email: 'test3@example.com',
|
||||
logins: 2,
|
||||
about: 'Lorem ipsum Dolore labore incididunt enim.',
|
||||
created_at: 1385400239319,
|
||||
updated_at: 1385400239319,
|
||||
created_at: 1395875717489,
|
||||
updated_at: 1395875717489,
|
||||
phone: null,
|
||||
details: ''
|
||||
},{
|
||||
@ -301,8 +301,8 @@ module.exports = {
|
||||
email: 'test4@example.com',
|
||||
logins: 2,
|
||||
about: 'Lorem ipsum Dolore labore incididunt enim.',
|
||||
created_at: 1385400239321,
|
||||
updated_at: 1385400239321,
|
||||
created_at: 1395875717490,
|
||||
updated_at: 1395875717490,
|
||||
phone: null,
|
||||
details: null
|
||||
},{
|
||||
@ -312,8 +312,8 @@ module.exports = {
|
||||
email: 'test5@example.com',
|
||||
logins: 2,
|
||||
about: 'Lorem ipsum Dolore labore incididunt enim.',
|
||||
created_at: 1385400239321,
|
||||
updated_at: 1385400239321,
|
||||
created_at: 1395875717490,
|
||||
updated_at: 1395875717490,
|
||||
phone: null,
|
||||
details: null
|
||||
},{
|
||||
@ -323,8 +323,8 @@ module.exports = {
|
||||
email: 'test6@example.com',
|
||||
logins: 2,
|
||||
about: 'Lorem ipsum Dolore labore incididunt enim.',
|
||||
created_at: 1385400239326,
|
||||
updated_at: 1385400239326,
|
||||
created_at: 1395875717493,
|
||||
updated_at: 1395875717493,
|
||||
phone: null,
|
||||
details: null
|
||||
}]
|
||||
@ -519,8 +519,8 @@ module.exports = {
|
||||
email: 'test@example.com',
|
||||
logins: 1,
|
||||
about: 'Lorem ipsum Dolore labore incididunt enim.',
|
||||
created_at: 1385400239318,
|
||||
updated_at: 1385400239318,
|
||||
created_at: 1395875717488,
|
||||
updated_at: 1395875717488,
|
||||
phone: null,
|
||||
account_id: 1,
|
||||
details: 'Lorem ipsum Minim nostrud Excepteur consectetur enim ut qui sint in veniam in nulla anim do cillum sunt voluptate Duis non incididunt.',
|
||||
@ -533,8 +533,8 @@ module.exports = {
|
||||
email: 'test2@example.com',
|
||||
logins: 1,
|
||||
about: 'Lorem ipsum Dolore labore incididunt enim.',
|
||||
created_at: 1385400239319,
|
||||
updated_at: 1385400239319,
|
||||
created_at: 1395875717489,
|
||||
updated_at: 1395875717489,
|
||||
phone: null,
|
||||
account_id: 2,
|
||||
details: 'Lorem ipsum Minim nostrud Excepteur consectetur enim ut qui sint in veniam in nulla anim do cillum sunt voluptate Duis non incididunt.',
|
||||
@ -547,8 +547,8 @@ module.exports = {
|
||||
email: 'test3@example.com',
|
||||
logins: 2,
|
||||
about: 'Lorem ipsum Dolore labore incididunt enim.',
|
||||
created_at: 1385400239319,
|
||||
updated_at: 1385400239319,
|
||||
created_at: 1395875717489,
|
||||
updated_at: 1395875717489,
|
||||
phone: null,
|
||||
account_id: 3,
|
||||
details: '',
|
||||
@ -561,8 +561,8 @@ module.exports = {
|
||||
email: 'test4@example.com',
|
||||
logins: 2,
|
||||
about: 'Lorem ipsum Dolore labore incididunt enim.',
|
||||
created_at: 1385400239321,
|
||||
updated_at: 1385400239321,
|
||||
created_at: 1395875717490,
|
||||
updated_at: 1395875717490,
|
||||
phone: null,
|
||||
account_id: null,
|
||||
details: null,
|
||||
@ -575,8 +575,8 @@ module.exports = {
|
||||
email: 'test5@example.com',
|
||||
logins: 2,
|
||||
about: 'Lorem ipsum Dolore labore incididunt enim.',
|
||||
created_at: 1385400239321,
|
||||
updated_at: 1385400239321,
|
||||
created_at: 1395875717490,
|
||||
updated_at: 1395875717490,
|
||||
phone: null,
|
||||
account_id: null,
|
||||
details: null,
|
||||
@ -589,8 +589,8 @@ module.exports = {
|
||||
email: 'test6@example.com',
|
||||
logins: 2,
|
||||
about: 'Lorem ipsum Dolore labore incididunt enim.',
|
||||
created_at: 1385400239326,
|
||||
updated_at: 1385400239326,
|
||||
created_at: 1395875717493,
|
||||
updated_at: 1395875717493,
|
||||
phone: null,
|
||||
account_id: null,
|
||||
details: null,
|
||||
|
@ -104,7 +104,7 @@ module.exports = {
|
||||
},
|
||||
postgresql: {
|
||||
bindings: [],
|
||||
sql: ['create table "composite_key_test" ("column_a" integer, "column_b" integer, "details" text, "status" smallint)','alter table "composite_key_test" add constraint composite_key_test_column_a_column_b_unique unique ("column_a", "column_b")']
|
||||
sql: ['create table "composite_key_test" ("column_a" integer, "column_b" integer, "details" text, "status" smallint)','alter table "composite_key_test" add constraint composite_key_test_column_a_column_b_unique unique ("column_a", "column_b")']
|
||||
},
|
||||
sqlite3: {
|
||||
bindings: [],
|
||||
|
@ -1,4 +1,58 @@
|
||||
module.exports = {
|
||||
'handles multi-column "where in" cases': {
|
||||
mysql: {
|
||||
bindings: [1,1,1,2],
|
||||
sql: 'select * from `composite_key_test` where (`column_a`,`column_b`) in ((?, ?),(?, ?))',
|
||||
result: [{
|
||||
column_a: 1,
|
||||
column_b: 1,
|
||||
details: 'One, One, One',
|
||||
status: 1
|
||||
},{
|
||||
column_a: 1,
|
||||
column_b: 2,
|
||||
details: 'One, Two, Zero',
|
||||
status: 0
|
||||
}]
|
||||
},
|
||||
postgresql: {
|
||||
bindings: [1,1,1,2],
|
||||
sql: 'select * from "composite_key_test" where ("column_a","column_b") in ((?, ?),(?, ?))',
|
||||
result: [{
|
||||
column_a: 1,
|
||||
column_b: 1,
|
||||
details: 'One, One, One',
|
||||
status: 1
|
||||
},{
|
||||
column_a: 1,
|
||||
column_b: 2,
|
||||
details: 'One, Two, Zero',
|
||||
status: 0
|
||||
}]
|
||||
}
|
||||
},
|
||||
'handles multi-column "or where in" cases': {
|
||||
mysql: {
|
||||
bindings: [1,1,1,1,2],
|
||||
sql: 'select * from `composite_key_test` where `status` = ? and (`column_a`,`column_b`) in ((?, ?),(?, ?))',
|
||||
result: [{
|
||||
column_a: 1,
|
||||
column_b: 1,
|
||||
details: 'One, One, One',
|
||||
status: 1
|
||||
}]
|
||||
},
|
||||
postgresql: {
|
||||
bindings: [1,1,1,1,2],
|
||||
sql: 'select * from "composite_key_test" where "status" = ? and ("column_a","column_b") in ((?, ?),(?, ?))',
|
||||
result: [{
|
||||
column_a: 1,
|
||||
column_b: 1,
|
||||
details: 'One, One, One',
|
||||
status: 1
|
||||
}]
|
||||
}
|
||||
},
|
||||
'allows key, value': {
|
||||
mysql: {
|
||||
bindings: [1],
|
||||
|
Loading…
x
Reference in New Issue
Block a user