From 965fb78b0673bc6945c6f95c5ac26e2205d556d3 Mon Sep 17 00:00:00 2001 From: Wojciech Zawistowski Date: Fri, 20 Dec 2013 21:00:48 +0100 Subject: [PATCH] adds unit tests for SearchTextField --- .../views/search_text_field_test.js | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 test/javascripts/views/search_text_field_test.js diff --git a/test/javascripts/views/search_text_field_test.js b/test/javascripts/views/search_text_field_test.js new file mode 100644 index 00000000000..8a8ff117fa0 --- /dev/null +++ b/test/javascripts/views/search_text_field_test.js @@ -0,0 +1,45 @@ +var view; + +var placeholderUsesKeyAndContext = function(key, context) { + var placeholder = view.get("placeholder"); + equal(placeholder.key, key, "placeholder contains correct message"); + deepEqual(placeholder.context, context, "correct parameters are passed to the message"); +}; + +module("Discourse.SearchTextField", { + setup: function() { + sinon.stub(I18n, "t", function(key, context) { + return {key: key, context: context}; + }); + + view = Discourse.SearchTextField.create(); + }, + + teardown: function() { + I18n.t.restore(); + } +}); + +test("formats placeholder correctly when no searchContext is provided", function() { + placeholderUsesKeyAndContext("search.placeholder", undefined); +}); + +test("formats placeholder correctly when user searchContext is provided", function() { + view.set("searchContext", { + type: "user", + user: { + username: "userName" + } + }); + placeholderUsesKeyAndContext("search.prefer.user", {username: "userName"}); +}); + +test("formats placeholder correctly when category searchContext is provided", function() { + view.set("searchContext", { + type: "category", + category: { + name: "categoryName" + } + }); + placeholderUsesKeyAndContext("search.prefer.category", {category: "categoryName"}); +});