From 303bac7bbefb67d75e3c08a159cf16efe7f98b88 Mon Sep 17 00:00:00 2001 From: Vit Brunner Date: Sat, 15 Jun 2013 18:12:24 +0100 Subject: [PATCH] Add reader factory, improve tests --- source/documents/_scripts.html.jade | 1 + source/documents/scripts/reader/_factory.js.coffee | 11 +++++++++++ source/documents/scripts/tests/_setup.js.coffee | 8 ++++++++ .../scripts/tests/reader/_abstract.js.coffee | 1 - .../documents/scripts/tests/reader/_factory.js.coffee | 9 +++++++++ source/documents/tests.html.jade | 2 ++ 6 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 source/documents/scripts/reader/_factory.js.coffee create mode 100644 source/documents/scripts/tests/_setup.js.coffee create mode 100644 source/documents/scripts/tests/reader/_factory.js.coffee diff --git a/source/documents/_scripts.html.jade b/source/documents/_scripts.html.jade index 9d3437e..e24a713 100644 --- a/source/documents/_scripts.html.jade +++ b/source/documents/_scripts.html.jade @@ -4,6 +4,7 @@ script(src="//cdnjs.cloudflare.com/ajax/libs/angular.js/1.1.5/angular.js") script(src="//raw.github.com/chjj/marked/master/lib/marked.js") script(src="scripts/app.js") script(src="scripts/services.js") +script(src="scripts/reader/_factory.js") script(src="scripts/reader/markdown.js") script(src="scripts/reader/json.js") script(src="scripts/controllers.js") diff --git a/source/documents/scripts/reader/_factory.js.coffee b/source/documents/scripts/reader/_factory.js.coffee new file mode 100644 index 0000000..e4d4008 --- /dev/null +++ b/source/documents/scripts/reader/_factory.js.coffee @@ -0,0 +1,11 @@ +angular.module("sideBySide").factory("readerFactory", ($injector) -> + return (filename) -> + extension = filename.split(".").pop() + switch extension + when "json" + return $injector.get("jsonReader") + when "md", "markdown" + return $injector.get("markdownReader") + else + throw "Unknown extension '" + extension + "'." +) diff --git a/source/documents/scripts/tests/_setup.js.coffee b/source/documents/scripts/tests/_setup.js.coffee new file mode 100644 index 0000000..42cf8c7 --- /dev/null +++ b/source/documents/scripts/tests/_setup.js.coffee @@ -0,0 +1,8 @@ +this.injector = angular.injector(['ng', 'sideBySide']) + +init = { + setup: () -> + this.$scope = injector.get('$rootScope').$new(); +} + +this.module('tests', init); diff --git a/source/documents/scripts/tests/reader/_abstract.js.coffee b/source/documents/scripts/tests/reader/_abstract.js.coffee index e4b8762..55dee12 100644 --- a/source/documents/scripts/tests/reader/_abstract.js.coffee +++ b/source/documents/scripts/tests/reader/_abstract.js.coffee @@ -1,5 +1,4 @@ this.testReader = (name, testCases) -> - injector = angular.injector(["ng", "sideBySide"]) reader = injector.get(name) for testCase in testCases diff --git a/source/documents/scripts/tests/reader/_factory.js.coffee b/source/documents/scripts/tests/reader/_factory.js.coffee new file mode 100644 index 0000000..364a0a6 --- /dev/null +++ b/source/documents/scripts/tests/reader/_factory.js.coffee @@ -0,0 +1,9 @@ +test("readerFactory", () -> + factory = injector.get("readerFactory") + + ok(factory("somefile.md")) + ok(factory("otherfile.json")) + throws(() -> + factory("microsoft.doc") + , /unknown/i) +) diff --git a/source/documents/tests.html.jade b/source/documents/tests.html.jade index f52b9b7..ef466d2 100644 --- a/source/documents/tests.html.jade +++ b/source/documents/tests.html.jade @@ -9,6 +9,8 @@ html // test scripts link(rel="stylesheet", type="text/css", href="//cdnjs.cloudflare.com/ajax/libs/qunit/1.11.0/qunit.css") script(src="//cdnjs.cloudflare.com/ajax/libs/qunit/1.11.0/qunit.js") + script(src="scripts/tests/_setup.js") + script(src="scripts/tests/reader/_factory.js") script(src="scripts/tests/reader/_abstract.js") script(src="scripts/tests/reader/markdown.js") script(src="scripts/tests/reader/json.js")