diff options
| -rw-r--r-- | lib/document-matchers.js | 3 | ||||
| -rw-r--r-- | tests/document-matchers.tests.js | 25 |
2 files changed, 27 insertions, 1 deletions
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}); +} |
