Skip to content

Commit

Permalink
Refactored check for parent controller, and added test cases
Browse files Browse the repository at this point in the history
  • Loading branch information
derekonay committed Jan 12, 2016
1 parent ecc2065 commit 529609b
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 3 deletions.
4 changes: 2 additions & 2 deletions lib/ui/analytics/analytics.js
Expand Up @@ -56,10 +56,10 @@
var parentCtrl = {};
var parentOptions = {};

if (controllers.length > 1 && controllers[1] !== undefined) {
if (controllers[1] !== null && typeof controllers[1] !== 'undefined') {

This comment has been minimized.

Copy link
@dnoler

dnoler Jan 12, 2016

Contributor

Since null and undefined are falsy you could simplify this check to this:
if (controllers[1]) {...}

parentCtrl = controllers[1];
parentOptions = parentCtrl.getOptions();
};
}

var options = angular.extend(
{},
Expand Down
15 changes: 14 additions & 1 deletion lib/ui/analytics/tests/analytics-spec.js
Expand Up @@ -20,15 +20,28 @@ describe('avAnalytics', function() {
});
}));

it('should track event', function () {
it('should have AvAnalytics beUndefined', function () {
$el = availity.mock.compileDirective('<div data-av-analytics-on="click"></div>');
var controller = $el.data('$avAnalyticsOnController');
var controller2 = $el.data('$avAnalyticsController');

spyOn(controller, 'onEvent').and.callThrough();

$el.trigger('click');
availity.mock.flush();
expect(controller.onEvent).toHaveBeenCalled();
expect(controller2).toBeUndefined();
});

it('should track event', function () {
$el = availity.mock.compileDirective('<div><div data-av-analytics-on="click"></div></div>');
var controller = $el.children().data('$avAnalyticsOnController');

spyOn(controller, 'onEvent').and.callThrough();

$el.children().trigger('click');
availity.mock.flush();
expect(controller.onEvent).toHaveBeenCalled();
expect(avAnalytics.trackEvent).toHaveBeenCalledWith({ event: 'click', level: 'info'});
});

Expand Down

0 comments on commit 529609b

Please sign in to comment.