From bb0a8991dff664d2b56cf420f8007547c3b88af5 Mon Sep 17 00:00:00 2001 From: Evert Timberg Date: Sun, 30 Aug 2015 20:17:24 -0400 Subject: [PATCH] Core element tests --- test/core.element.tests.js | 45 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 test/core.element.tests.js diff --git a/test/core.element.tests.js b/test/core.element.tests.js new file mode 100644 index 000000000..6443de099 --- /dev/null +++ b/test/core.element.tests.js @@ -0,0 +1,45 @@ +// Test the core element functionality +describe('Core element tests', function() { + it ('should transition model properties', function() { + var element = new Chart.Element({ + _model: { + numberProp: 0, + numberProp2: 100, + _underscoreProp: 0, + stringProp: 'abc', + objectProp: { + myObject: true + }, + colorProp: 'rgb(0, 0, 0)' + } + }); + + // First transition clones model into view + element.transition(0.25); + expect(element._view).toEqual(element._model); + expect(element._start).toEqual(element._model); // also cloned + + expect(element._view.objectProp).toBe(element._model.objectProp); // not cloned + expect(element._start.objectProp).toEqual(element._model.objectProp); // not cloned + + element._model.numberProp = 100; + element._model.numberProp2 = 250; + element._model._underscoreProp = 200; + element._model.stringProp = 'def' + element._model.newStringProp = 'newString'; + element._model.colorProp = 'rgb(255, 255, 0)' + + element.transition(0.25); + expect(element._view).toEqual({ + numberProp: 25, + numberProp2: 137.5, + _underscoreProp: 0, // underscore props are not transition to a new value + stringProp: 'def', + newStringProp: 'newString', + objectProp: { + myObject: true + }, + colorProp: 'rgb(64, 64, 0)', + }); + }); +}); \ No newline at end of file -- 2.47.3