UNPKG

dhxmvp

Version:

A complete boilerplate for building online, offline and syncable MVP Single Page Applications using DHTMLX.

62 lines (54 loc) 2.23 kB
///<reference path="../bower_components/qunit/qunit/qunit.js" /> ///<reference path="../bower_components/dexie/dist/latest/Dexie.js" /> (function () { var db = new Dexie("iegap-unit-test-database"); db.version(1).stores({ users: '[customer+userid],userid,[customer+displayName],*&email' }); db.on('populate', function () { db.users.add({ customer: "awarica", userid: "dfahlander", email: ["david@awarica.com","david.fahlander@gmail.com"], displayName: "David" }); }); db.open(); asyncTest("compound-primary-key", function () { db.users.get(["awarica", "dfahlander"], function (user) { ok(!!user, "User found"); equal(user.userid, "dfahlander", "User correct"); }).catch(function (err) { ok(false, err); }).finally(start); }); asyncTest("compound-key", function () { db.users.where("[customer+displayName]").equals(["awarica","David"]).first(function (user) { ok(!!user, "User found"); equal(user.userid, "dfahlander", "User correct"); }).catch(function (err) { ok(false, err); }).finally(start); }); asyncTest("multiEntry-key", function () { db.users.get(["awarica", "dfahlander"], function (user) { ok(!!user, "User found"); equal(user.userid, "dfahlander", "User correct"); user.email.push("dfahlander@hotmail.com"); return db.users.put(user); }).then(function () { return db.users.where("email").equals("dfahlander@hotmail.com").first(); }).then(function (user) { ok(!!user, "User found by new multiENtry key"); equal(user.userid, "dfahlander", "User correct"); user.email.pop(); return db.users.put(user); }).then(function () { return db.users.where("email").equals("dfahlander@hotmail.com").count(); }).then(function (count) { equal(count, 0, "Should not find any user on that deleted email anymore"); }).catch(function (err) { ok(false, err); }).finally(start); }); })();