From 44917fd568f5e7feee1c054fa22ba4cb27166353 Mon Sep 17 00:00:00 2001 From: Nathan Sobo Date: Tue, 1 Nov 2016 14:13:44 -0600 Subject: [PATCH] Relocate/rephrase tooltip follow-through test Also make sure it doesn't leave tooltips on the DOM, which causes subsequent tests to fail --- spec/tooltip-manager-spec.coffee | 50 +++++++++++++++++--------------- 1 file changed, 27 insertions(+), 23 deletions(-) diff --git a/spec/tooltip-manager-spec.coffee b/spec/tooltip-manager-spec.coffee index 3d7124d68..a7e8ccb1f 100644 --- a/spec/tooltip-manager-spec.coffee +++ b/spec/tooltip-manager-spec.coffee @@ -1,3 +1,4 @@ +{CompositeDisposable} = require 'atom' TooltipManager = require '../src/tooltip-manager' Tooltip = require '../src/tooltip' _ = require 'underscore-plus' @@ -40,6 +41,32 @@ describe "TooltipManager", -> hover element, -> expect(document.body.querySelector(".tooltip")).toHaveText("Title") + it "displays tooltips immediately when hovering over new elements once a tooltip has been displayed once", -> + disposables = new CompositeDisposable + element1 = createElement('foo') + disposables.add(manager.add element1, title: 'Title') + element2 = createElement('bar') + disposables.add(manager.add element2, title: 'Title') + element3 = createElement('baz') + disposables.add(manager.add element3, title: 'Title') + + hover element1, -> + expect(document.body.querySelector(".tooltip")).toBeNull() + + mouseEnter(element2) + expect(document.body.querySelector(".tooltip")).not.toBeNull() + mouseLeave(element2) + advanceClock(manager.hoverDefaults.delay.hide) + expect(document.body.querySelector(".tooltip")).toBeNull() + + advanceClock(Tooltip.FOLLOW_THROUGH_DURATION) + mouseEnter(element3) + expect(document.body.querySelector(".tooltip")).toBeNull() + advanceClock(manager.hoverDefaults.delay.show) + expect(document.body.querySelector(".tooltip")).not.toBeNull() + + disposables.dispose() + describe "when the trigger is 'manual'", -> it "creates a tooltip immediately and only hides it on dispose", -> disposable = manager.add element, title: "Title", trigger: "manual" @@ -163,26 +190,3 @@ describe "TooltipManager", -> expect(document.body.querySelector(".tooltip")).not.toBeNull() window.dispatchEvent(new CustomEvent('resize')) expect(document.body.querySelector(".tooltip")).toBeNull() - - it "works with follow-through", -> - element1 = createElement('foo') - manager.add element1, title: 'Title' - element2 = createElement('bar') - manager.add element2, title: 'Title' - element3 = createElement('baz') - manager.add element3, title: 'Title' - - hover element1, -> - expect(document.body.querySelector(".tooltip")).toBeNull() - - mouseEnter(element2) - expect(document.body.querySelector(".tooltip")).not.toBeNull() - mouseLeave(element2) - advanceClock(manager.hoverDefaults.delay.hide) - expect(document.body.querySelector(".tooltip")).toBeNull() - - advanceClock(Tooltip.FOLLOW_THROUGH_DURATION) - mouseEnter(element3) - expect(document.body.querySelector(".tooltip")).toBeNull() - advanceClock(manager.hoverDefaults.delay.show) - expect(document.body.querySelector(".tooltip")).not.toBeNull()