From cdf71ffdfa56ed698513b8a1d424c73967816c38 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sat, 4 May 2013 10:31:45 +0100 Subject: Add tests for document-matchers --- lib/document-matchers.js | 3 ++- tests/document-matchers.tests.js | 25 +++++++++++++++++++++++++ 2 files changed, 27 insertions(+), 1 deletion(-) create mode 100644 tests/document-matchers.tests.js diff --git a/lib/document-matchers.js b/lib/document-matchers.js index 3232a23..a40bde7 100644 --- a/lib/document-matchers.js +++ b/lib/document-matchers.js @@ -16,5 +16,6 @@ function Matcher(elementType, styleName) { } Matcher.prototype.matches = function(element) { - return element.type === this.elementType && element.styleName === this.styleName; + return element.type === this.elementType && + (!this.styleName || element.styleName === this.styleName); } diff --git a/tests/document-matchers.tests.js b/tests/document-matchers.tests.js new file mode 100644 index 0000000..55fd447 --- /dev/null +++ b/tests/document-matchers.tests.js @@ -0,0 +1,25 @@ +var assert = require("assert"); + +var test = require("./testing").test; +var documentMatchers = require("../lib/document-matchers"); +var documents = require("../lib/documents"); + + +describe("document-matchers", function() { + test("paragraph with no style name matches any paragraph", function() { + var matcher = documentMatchers.paragraph(); + assert.ok(matcher.matches(new documents.Paragraph())); + assert.ok(matcher.matches(new paragraphWithStyle("Heading1"))); + }); + + test("paragraph style name only matches paragraphs with that style", function() { + var matcher = documentMatchers.paragraph("Heading1"); + assert.ok(!matcher.matches(new documents.Paragraph())); + assert.ok(matcher.matches(paragraphWithStyle("Heading1"))); + assert.ok(!matcher.matches(paragraphWithStyle("Heading2"))); + }); +}); + +function paragraphWithStyle(styleName) { + return new documents.Paragraph([], {styleName: styleName}); +} -- cgit v1.2.3