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

Statements: 100% (29 / 29)      Branches: 50% (1 / 2)      Functions: 100% (2 / 2)      Lines: 100% (28 / 28)      Ignored: none     

All files » spec/generic/ » changesApi.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 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 581   1 1 1                     1     1 1 1     1       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('changesApi', function () {
  it('does what it says on the tin', function () {
    var db = new loki(),
      // gordian = require('gordian'),
      // suite = new gordian('testEvents'),
      options = {
        asyncListeners: false,
        disableChangesApi: false
      },
      users = db.addCollection('users', options),
      test = db.addCollection('test', options),
      test2 = db.addCollection('test2', options);
 
    var u = users.insert({
      name: 'joe'
    });
    u.name = 'jack';
    users.update(u);
    test.insert({
      name: 'test'
    });
    test2.insert({
      name: 'test2'
    });
 
    var userChanges = db.generateChangesNotification(['users']);
 
    expect(userChanges.length).toEqual(2);
    expect(db.serializeChanges(['users'])).toEqual(JSON.stringify(userChanges));
 
    var someChanges = db.generateChangesNotification(['users', 'test2']);
 
    expect(someChanges.length).toEqual(3);
    var allChanges = db.generateChangesNotification();
 
    expect(allChanges.length).toEqual(4);
    users.setChangesApi(false);
    expect(users.disableChangesApi).toEqual(true);
 
    u.name = 'john';
    users.update(u);
    var newChanges = db.generateChangesNotification(['users']);
 
    expect(newChanges.length).toEqual(2);
    db.clearChanges();
 
    expect(users.getChanges().length).toEqual(0);
 
    u.name = 'jim';
    users.update(u);
    users.flushChanges();
 
    expect(users.getChanges().length).toEqual(0);
  });
});