]> git.ipfire.org Git - thirdparty/Chart.js.git/commitdiff
Core element tests
authorEvert Timberg <evert.timberg@gmail.com>
Mon, 31 Aug 2015 00:17:24 +0000 (20:17 -0400)
committerEvert Timberg <evert.timberg@gmail.com>
Mon, 31 Aug 2015 00:17:24 +0000 (20:17 -0400)
test/core.element.tests.js [new file with mode: 0644]

diff --git a/test/core.element.tests.js b/test/core.element.tests.js
new file mode 100644 (file)
index 0000000..6443de0
--- /dev/null
@@ -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