From 209f4f6993657805e7d352205bcab2baf6f2da3e Mon Sep 17 00:00:00 2001 From: Frank de Groot - Schouten Date: Sun, 6 Jan 2013 23:08:04 +0100 Subject: [PATCH] Added unit tests for nav.js --- app/js/app.js | 5 ++-- app/js/ctrl/nav.js | 21 ++++++++--------- app/js/ctrl/project/create.js | 4 +++- app/js/ctrl/project/edit.js | 2 ++ app/js/ctrl/project/list.js | 2 ++ app/js/ctrl/signin.js | 4 +++- app/js/filters.js | 8 +++---- test/unit/ctrl/navSpec.js | 37 +++++++++++++++++++++++++++++- test/unit/ctrl/project/listSpec.js | 14 +++++++++++ 9 files changed, 77 insertions(+), 20 deletions(-) create mode 100644 test/unit/ctrl/project/listSpec.js diff --git a/app/js/app.js b/app/js/app.js index df5e1e2798..da7e6292ec 100644 --- a/app/js/app.js +++ b/app/js/app.js @@ -1,7 +1,8 @@ -'use strict'; - +/*global ProjectCreateCtrl ProjectEditCtrl ProjectListCtrl */ angular.module('main', ['resProject']). config(function ($routeProvider) { + 'use strict'; + $routeProvider. when('/', { templateUrl: 'partials/home.html' }). when('/about', { templateUrl: 'partials/about.html' }). diff --git a/app/js/ctrl/nav.js b/app/js/ctrl/nav.js index 762af6c99a..3d5eb7940f 100644 --- a/app/js/ctrl/nav.js +++ b/app/js/ctrl/nav.js @@ -1,19 +1,18 @@ -'use strict'; +function NavCtrl($scope, $location) { + 'use strict'; -function NavCtrl($scope, $location) { $scope.isUrl = function (path, className) { - if ($location.path() == path) { + if ($location.path() === path) { return className; - } else { - return ""; } - } + return ""; + }; $scope.hasUrl = function (path, className) { - if ($location.path().substring(0, path.length) == path) { + if ($location.path().search(path) === 0) { return className; - } else { - return ""; } - } -} \ No newline at end of file + return ""; + }; +} +NavCtrl.$inject = ['$scope', '$location']; \ No newline at end of file diff --git a/app/js/ctrl/project/create.js b/app/js/ctrl/project/create.js index 0a4241c1ff..b37486fadf 100644 --- a/app/js/ctrl/project/create.js +++ b/app/js/ctrl/project/create.js @@ -1,7 +1,9 @@ function ProjectCreateCtrl($scope, $location, Project) { + 'use strict'; + $scope.save = function () { Project.save($scope.project, function (project) { $location.path('/project'); }); - } + }; } diff --git a/app/js/ctrl/project/edit.js b/app/js/ctrl/project/edit.js index 429a6878ba..fd361a2f04 100644 --- a/app/js/ctrl/project/edit.js +++ b/app/js/ctrl/project/edit.js @@ -1,4 +1,6 @@ function ProjectEditCtrl($scope, $location, $routeParams, Project) { + 'use strict'; + var self = this; Project.get({ id: $routeParams.projectId }, function (project) { diff --git a/app/js/ctrl/project/list.js b/app/js/ctrl/project/list.js index e9da34ec93..e0403da9b2 100644 --- a/app/js/ctrl/project/list.js +++ b/app/js/ctrl/project/list.js @@ -1,3 +1,5 @@ function ProjectListCtrl($scope, Project) { + 'use strict'; + $scope.projects = Project.query(); } \ No newline at end of file diff --git a/app/js/ctrl/signin.js b/app/js/ctrl/signin.js index eb91241076..581153f2cd 100644 --- a/app/js/ctrl/signin.js +++ b/app/js/ctrl/signin.js @@ -1,5 +1,7 @@ function SignInCtrl($scope) { - $scope.signIn = function() { + 'use strict'; + + $scope.signIn = function () { alert('Sign in of ' + $scope.name); }; } \ No newline at end of file diff --git a/app/js/filters.js b/app/js/filters.js index 259dd4ee02..07dc596893 100644 --- a/app/js/filters.js +++ b/app/js/filters.js @@ -3,8 +3,8 @@ /* Filters */ angular.module('myApp.filters', []). - filter('interpolate', ['version', function(version) { - return function(text) { - return String(text).replace(/\%VERSION\%/mg, version); - } + filter('interpolate', ['version', function (version) { + return function (text) { + return String(text).replace(/\%VERSION\%/mg, version); + }; }]); diff --git a/test/unit/ctrl/navSpec.js b/test/unit/ctrl/navSpec.js index c4e44de3a1..cdd58d5079 100644 --- a/test/unit/ctrl/navSpec.js +++ b/test/unit/ctrl/navSpec.js @@ -1,2 +1,37 @@ -'use strict'; +/*global beforeEach describe expect inject it NavCtrl */ +describe('NavCtrl', function () { + 'use strict'; + var controller, path, location, scope; + + beforeEach(inject(function ($rootScope, $controller) { + path = undefined; + location = { + path: function () { + return path; + } + }; + scope = $rootScope.$new(); + controller = $controller(NavCtrl, { $scope: scope, $location: location }); + })); + + it('Should return an empty string when url does not match.', function () { + path = 'url1'; + expect(scope.isUrl('url2', 'className1')).toEqual(''); + }); + + it('Should return the className when url does match.', function () { + path = 'url1'; + expect(scope.isUrl('url1', 'className1')).toEqual('className1'); + }); + + it('Should return an empty string when current url does not start with the supplied url.', function () { + path = 'url1-url'; + expect(scope.hasUrl('url2', 'className1')).toEqual(''); + }); + + it('Should return the className when current url starts with the supplied url.', function () { + path = 'url1-url'; + expect(scope.hasUrl('url1', 'className1')).toEqual('className1'); + }); +}); diff --git a/test/unit/ctrl/project/listSpec.js b/test/unit/ctrl/project/listSpec.js new file mode 100644 index 0000000000..69d49cbd0b --- /dev/null +++ b/test/unit/ctrl/project/listSpec.js @@ -0,0 +1,14 @@ +describe('ProjectListCtrl', function () { + 'use strict'; + + var controller, scope; + + beforeEach(inject(function ($rootScope, $controller, $httpBackend) { + scope = $rootScope.$new() + controller = $controller(ProjectListCtrl, { $scope: scope, Project: Project }); + })); + + //it('Should query for all projects and assign it to projects.', function () { + + //}); +}); \ No newline at end of file