Code coverage report for spec/generic/unique.spec.js

Statements: 100% (20 / 20)      Branches: 50% (1 / 2)      Functions: 100% (4 / 4)      Lines: 100% (20 / 20)      Ignored: none     

All files » spec/generic/ » unique.spec.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 381 1   1 1 1 1     1 1     1       1       1   1 1   1 1 1 1     1 1 1      
Eif (typeof (window) === 'undefined') {
  var loki = require('../../src/lokijs.js');
}
describe('Constraints', function () {
  var db;
  beforeEach(function () {
    db = new loki();
  });
 
  it('should retrieve records with by()', function () {
    var coll = db.addCollection('users', {
      unique: ['username']
    });
    coll.insert({
      username: 'joe',
      name: 'Joe'
    });
    coll.insert({
      username: 'jack',
      name: 'Jack'
    });
    expect(coll.by('username', 'joe').name).toEqual('Joe');
 
    var byUsername = coll.by('username');
    expect(byUsername('jack').name).toEqual('Jack');
 
    var joe = coll.by('username', 'joe');
    joe.username = 'jack';
    expect(function () {
      coll.update(joe)
    }).toThrow(new Error('Duplicate key for property username'));
 
    joe.username = 'jim';
    coll.update(joe);
    expect(byUsername('jim')).toEqual(joe);
  });
});