Return correct error when violating unique index (#1763)

This commit is contained in:
Marco Cheung
2016-05-12 08:24:15 +08:00
committed by Drew
parent 6cfcb4ddf8
commit 19e7407f55
2 changed files with 30 additions and 1 deletions

View File

@@ -5,6 +5,7 @@
var DatabaseAdapter = require('../src/DatabaseAdapter');
var request = require('request');
const Parse = require("parse/node");
let Config = require('../src/Config');
describe('miscellaneous', function() {
it('create a GameScore object', function(done) {
@@ -1387,4 +1388,25 @@ describe('miscellaneous', function() {
})
});
});
it('fail when create duplicate value in unique field', (done) => {
let obj = new Parse.Object('UniqueField');
obj.set('unique', 'value');
obj.save().then(() => {
expect(obj.id).not.toBeUndefined();
let config = new Config('test');
return config.database.adapter.adaptiveCollection('UniqueField')
}).then(collection => {
return collection._mongoCollection.createIndex({ 'unique': 1 }, { unique: true })
}).then(() => {
let obj = new Parse.Object('UniqueField');
obj.set('unique', 'value');
return obj.save()
}).then(() => {
return Promise.reject();
}, error => {
expect(error.code === Parse.Error.DUPLICATE_VALUE);
done();
});
});
});