diff options
Diffstat (limited to 'src/js/tests/specs/rules.js')
-rw-r--r-- | src/js/tests/specs/rules.js | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/src/js/tests/specs/rules.js b/src/js/tests/specs/rules.js new file mode 100644 index 0000000..b9db6b3 --- /dev/null +++ b/src/js/tests/specs/rules.js @@ -0,0 +1,64 @@ + +describe('fiveui.Rules', function() { + + it('round trips via JSON', function() { + + var ruleIn = new fiveui.Rule(42, 'testRule', + 'see: http://test.description/', + 'function() { console.log("fail"); }'); + + var jsonRule = JSON.stringify(ruleIn); + + var ruleOut = fiveui.Rule.fromJSON(JSON.parse(jsonRule)); + + expect(ruleOut.id).toBe(ruleIn.id); + expect(ruleOut.name).toBe(ruleIn.name); + expect(ruleOut.description).toBe(ruleIn.description); + expect(ruleOut.ruleStr).toBe(ruleIn.ruleStr); + }); + + +}); + + +describe('fiveui.RuleSet', function() { + + it('round trips via JSON, without deps', function() { + + var rule1 = new fiveui.Rule(42, 'r1', 'desc1', 'rule txt1'); + var rule2 = new fiveui.Rule(43, 'r2', 'desc2', 'rule txt2'); + + var ruleSet = new fiveui.RuleSet(42, 'rule set', 'desc', '', [rule1, rule2]); + + var jsonSet = JSON.stringify(ruleSet); + var restoredSet = fiveui.RuleSet.fromJSON(42, JSON.parse(jsonSet)); + + expect(restoredSet.id).toBe(ruleSet.id); + expect(restoredSet.name).toBe(ruleSet.name); + expect(restoredSet.description).toBe(ruleSet.description); + expect(restoredSet.source).toEqual(ruleSet.source); + expect(restoredSet.rules).toEqual(ruleSet.rules); + expect(restoredSet.dependencies.length).toBe(0); + + + }); + + it('round trips via JSON, with deps', function() { + + var rule1 = new fiveui.Rule(42, 'r1', 'desc1', 'rule txt1'); + var rule2 = new fiveui.Rule(43, 'r2', 'desc2', 'rule txt2'); + + var ruleSet = new fiveui.RuleSet(42, 'rule set', 'desc', [rule1, rule2], + '', ['dep1.js', 'dep2.js']); + + var jsonSet = JSON.stringify(ruleSet); + var restoredSet = fiveui.RuleSet.fromJSON(42, JSON.parse(jsonSet)); + + expect(restoredSet.id).toBe(ruleSet.id); + expect(restoredSet.name).toBe(ruleSet.name); + expect(restoredSet.description).toBe(ruleSet.description); + expect(restoredSet.rules.length).toBe(ruleSet.rules.length); + expect(restoredSet.dependencies).toEqual(ruleSet.dependencies); + }); + +}); |