不要怂,就是干,撸起袖子干!

Added and refactored tests

1 parent 3fdbeff7
Showing with 15 additions and 16 deletions
...@@ -92,11 +92,10 @@ if (dialect.match(/^postgres/)) { ...@@ -92,11 +92,10 @@ if (dialect.match(/^postgres/)) {
return this.User.create({ username: 'swen', emergency_contact: emergencyContact }) return this.User.create({ username: 'swen', emergency_contact: emergencyContact })
.then(function (user) { .then(function (user) {
expect(user.emergency_contact).to.eql(emergencyContact); expect(user.emergency_contact).to.eql(emergencyContact);
//return self.User.find({ where: { username: 'swen' }, attributes: [['emergency_contact->\'phones\'->1', 'emergency_contact']] }); return self.User.find({ where: { username: 'swen' }, attributes: [[sequelize.json('emergency_contact.phones.1'), 'firstEmergencyNumber']] });
return self.User.find({ where: { username: 'swen' }, attributes: [[sequelize.json('emergency_contact.phones.1'), 'emergency_contact']] });
}) })
.then(function (user) { .then(function (user) {
expect(parseInt(user.emergency_contact)).to.equal(42); expect(parseInt(user.getDataValue('firstEmergencyNumber'))).to.equal(42);
}); });
}); });
...@@ -107,10 +106,10 @@ if (dialect.match(/^postgres/)) { ...@@ -107,10 +106,10 @@ if (dialect.match(/^postgres/)) {
return this.User.create({ username: 'swen', emergency_contact: emergencyContact }) return this.User.create({ username: 'swen', emergency_contact: emergencyContact })
.then(function (user) { .then(function (user) {
expect(user.emergency_contact).to.eql(emergencyContact); expect(user.emergency_contact).to.eql(emergencyContact);
return self.User.find({ where: { username: 'swen' }, attributes: [[sequelize.json('emergency_contact.kate'), 'emergency_contact']] }); return self.User.find({ where: { username: 'swen' }, attributes: [[sequelize.json('emergency_contact.kate'), 'katesNumber']] });
}) })
.then(function (user) { .then(function (user) {
expect(parseInt(user.emergency_contact)).to.equal(1337); expect(parseInt(user.getDataValue('katesNumber'))).to.equal(1337);
}); });
}); });
...@@ -121,16 +120,16 @@ if (dialect.match(/^postgres/)) { ...@@ -121,16 +120,16 @@ if (dialect.match(/^postgres/)) {
return this.User.create({ username: 'swen', emergency_contact: emergencyContact }) return this.User.create({ username: 'swen', emergency_contact: emergencyContact })
.then(function (user) { .then(function (user) {
expect(user.emergency_contact).to.eql(emergencyContact); expect(user.emergency_contact).to.eql(emergencyContact);
return self.User.find({ where: { username: 'swen' }, attributes: [[sequelize.json('emergency_contact.kate.email'), 'emergency_contact']] }); return self.User.find({ where: { username: 'swen' }, attributes: [[sequelize.json('emergency_contact.kate.email'), 'katesEmail']] });
}) })
.then(function (user) { .then(function (user) {
expect(user.emergency_contact).to.equal('kate@kate.com'); expect(user.getDataValue('katesEmail')).to.equal('kate@kate.com');
}) })
.then(function () { .then(function () {
return self.User.find({ where: { username: 'swen' }, attributes: [[sequelize.json('emergency_contact.kate.phones.1'), 'emergency_contact']] }); return self.User.find({ where: { username: 'swen' }, attributes: [[sequelize.json('emergency_contact.kate.phones.1'), 'katesFirstPhone']] });
}) })
.then(function (user) { .then(function (user) {
expect(parseInt(user.emergency_contact)).to.equal(42); expect(parseInt(user.getDataValue('katesFirstPhone'))).to.equal(42);
}); });
}); });
...@@ -141,7 +140,7 @@ if (dialect.match(/^postgres/)) { ...@@ -141,7 +140,7 @@ if (dialect.match(/^postgres/)) {
this.User.create({ username: 'swen', emergency_contact: { name: 'kate' } }), this.User.create({ username: 'swen', emergency_contact: { name: 'kate' } }),
this.User.create({ username: 'anna', emergency_contact: { name: 'joe' } })]) this.User.create({ username: 'anna', emergency_contact: { name: 'joe' } })])
.then(function () { .then(function () {
return self.User.find({ where: 'emergency_contact->>\'name\' = \'kate\'', attributes: ['username', 'emergency_contact'] }); return self.User.find({ where: sequelize.json("emergency_contact->>'name'", 'kate'), attributes: ['username', 'emergency_contact'] });
}) })
.then(function (user) { .then(function (user) {
expect(user.emergency_contact.name).to.equal('kate'); expect(user.emergency_contact.name).to.equal('kate');
......
...@@ -164,16 +164,16 @@ describe(Support.getTestDialectTeaser("Utils"), function() { ...@@ -164,16 +164,16 @@ describe(Support.getTestDialectTeaser("Utils"), function() {
expect((new Utils.json(path)).toString()).to.equal("metadata#>>'{pg_rating,dk}'"); expect((new Utils.json(path)).toString()).to.equal("metadata#>>'{pg_rating,dk}'");
}); });
it('successfully parses a string and value using dot notation', function () {
var path = 'metadata.pg_rating.dk';
var value = 'G';
expect((new Utils.json(path, value)).toString()).to.equal("metadata#>>'{pg_rating,dk}' = 'G'");
});
it('allows postgres json syntax', function () { it('allows postgres json syntax', function () {
var path = 'metadata->pg_rating->>dk'; var path = 'metadata->pg_rating->>dk';
expect((new Utils.json(path)).toString()).to.equal(path); expect((new Utils.json(path)).toString()).to.equal(path);
}); });
it('can take a value to compare against', function () {
var path = 'metadata.pg_rating.is';
var value = 'U';
expect((new Utils.json(path, value)).toString()).to.equal("metadata#>>'{pg_rating,is}' = 'U'");
});
}); });
describe('inflection', function () { describe('inflection', function () {
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!