diff --git a/Gruntfile.coffee b/Gruntfile.coffee index b776bfd..5220790 100644 --- a/Gruntfile.coffee +++ b/Gruntfile.coffee @@ -59,6 +59,7 @@ module.exports = (grunt) -> test_scripts: [ 'bower_components/qunit/qunit/qunit.js' 'tests/_setup.js' + 'tests/services/route.js' 'tests/services/reader/_factory.js' 'tests/services/reader/markdown.js' 'tests/services/reader/json.js' diff --git a/source/scripts/services/route.js.coffee b/source/scripts/services/route.js.coffee index d84b3d1..2186571 100644 --- a/source/scripts/services/route.js.coffee +++ b/source/scripts/services/route.js.coffee @@ -1,5 +1,5 @@ angular.module("sideBySide").service "route", ['$location', ($location) -> - @params = $location.url() + @params = $location.path() .split('/') .filter((item) -> item) .map (item) -> diff --git a/source/tests/services/route.js.coffee b/source/tests/services/route.js.coffee new file mode 100644 index 0000000..8df8f74 --- /dev/null +++ b/source/tests/services/route.js.coffee @@ -0,0 +1,43 @@ +route = {} + +module "route", { + setup: () -> + angular.module("sideBySide").service("$location", () -> + @path = () -> + '/asdf:zxcv/qwerty:asdf' + @url = () -> + '/asdf:zxcv/qwerty:asdf#test' + @absUrl = () -> + 'http://example.com/asdf:zxcv/qwerty:asdf#test' + @ + ) + + route = angular.injector(['ng', 'sideBySide']).get('route') +} + +test "has app url", () -> + equal route.appUrl, 'http://example.com' + +test "gets parameters", () -> + deepEqual route.params, { + 'asdf': 'zxcv' + 'qwerty': 'asdf' + 'base': '' + } + +test "updates parameters", () -> + route.update('asdf', 'hjkl') + deepEqual route.params, { + 'asdf': 'hjkl' + 'qwerty': 'asdf' + 'base': '' + } + +test "adds parameter", () -> + route.update('new', 'one') + deepEqual route.params, { + 'asdf': 'zxcv' + 'qwerty': 'asdf' + 'base': '' + 'new': 'one' + }