describe('Chart.elements.Point', function() { describe('auto', jasmine.fixture.specs('element.point')); it ('Should be constructed', function() { var point = new Chart.elements.Point({ _datasetIndex: 2, _index: 1 }); expect(point).not.toBe(undefined); expect(point._datasetIndex).toBe(2); expect(point._index).toBe(1); }); it ('Should correctly identify as in range', function() { var point = new Chart.elements.Point({ _datasetIndex: 2, _index: 1 }); // Safely handles if these are called before the viewmodel is instantiated expect(point.inRange(5)).toBe(false); // Attach a view object as if we were the controller point._view = { radius: 2, hitRadius: 3, x: 10, y: 15 }; expect(point.inRange(10, 15)).toBe(true); expect(point.inRange(10, 10)).toBe(false); expect(point.inRange(10, 5)).toBe(false); expect(point.inRange(5, 5)).toBe(false); }); it ('should get the correct tooltip position', function() { var point = new Chart.elements.Point({ _datasetIndex: 2, _index: 1 }); // Attach a view object as if we were the controller point._view = { radius: 2, borderWidth: 6, x: 10, y: 15 }; expect(point.tooltipPosition()).toEqual({ x: 10, y: 15, padding: 8 }); }); it('should get the correct center point', function() { var point = new Chart.elements.Point({ _datasetIndex: 2, _index: 1 }); // Attach a view object as if we were the controller point._view = { radius: 2, x: 10, y: 10 }; expect(point.getCenterPoint()).toEqual({x: 10, y: 10}); }); it ('should not draw if skipped', function() { var mockContext = window.createMockContext(); var point = new Chart.elements.Point({ _datasetIndex: 2, _index: 1, _ctx: mockContext }); // Attach a view object as if we were the controller point._view = { radius: 2, hitRadius: 3, x: 10, y: 15, ctx: mockContext, skip: true }; point.draw(); expect(mockContext.getCalls()).toEqual([]); }); });