summaryrefslogtreecommitdiff
path: root/web-ui/test/spec/tags/ui/tag_shortcut.spec.js
diff options
context:
space:
mode:
Diffstat (limited to 'web-ui/test/spec/tags/ui/tag_shortcut.spec.js')
-rw-r--r--web-ui/test/spec/tags/ui/tag_shortcut.spec.js35
1 files changed, 35 insertions, 0 deletions
diff --git a/web-ui/test/spec/tags/ui/tag_shortcut.spec.js b/web-ui/test/spec/tags/ui/tag_shortcut.spec.js
new file mode 100644
index 00000000..7df35631
--- /dev/null
+++ b/web-ui/test/spec/tags/ui/tag_shortcut.spec.js
@@ -0,0 +1,35 @@
+describeComponent("tags/ui/tag_shortcut", function () {
+
+ var parent, shortcut, component, TagShortcut;
+
+ beforeEach(function () {
+ TagShortcut = require('tags/ui/tag_shortcut');
+
+ component = jasmine.createSpyObj('tagComponent', ['triggerSelect']);
+ parent = $("<ul>");
+ shortcut = TagShortcut.appendedTo(parent, { linkTo: { name: 'inbox', counts: { total: 15 }}, trigger: component });
+ });
+
+ it('renders the shortcut inside the parent', function () {
+ expect(parent.html()).toMatch('<a title="inbox">');
+ expect(parent.html()).toMatch('<i class="fa fa-inbox"></i>');
+ expect(parent.html()).toMatch('<div class="shortcut-label">inbox</div>');
+ });
+
+ it('selects and unselect on tag.select', function () {
+ $(document).trigger(Smail.events.ui.tag.select, { tag: 'inbox'});
+
+ expect(shortcut.$node).toHaveClass("selected");
+
+ $(document).trigger(Smail.events.ui.tag.select, { tag: 'sent'});
+
+ expect(shortcut.$node).not.toHaveClass("selected");
+ });
+
+ it('delegates the click to linked tag', function (){
+ shortcut.$node.click();
+
+ expect(component.triggerSelect).toHaveBeenCalled();
+ });
+
+});