         view.$(".action-close").click()
 
         expect(CMS.Views.Alert.prototype.hide).toHaveBeenCalled()
-        expect(view.$('.wrapper')).not.toHaveClass("is-shown")
-        expect(view.$('.wrapper')).toHaveClass("is-hiding")
+        expect(view.$('.wrapper')).toBeHiding()
 
 describe "CMS.Views.Prompt", ->
     tpl = readFixtures('prompt.underscore')

describe "CMS.Views.Alert as base class", ->
    tpl = readFixtures('alert.underscore')


    it "a minShown view should not hide too quickly", ->
        view = new CMS.Views.Notification({model: @model, minShown: 1000})
        expect(CMS.Views.Notification.prototype.show).toHaveBeenCalled()
        expect(view.$('.wrapper')).toBeShown()

        # call hide() on it, but the minShown should prevent it from hiding right away
        view.hide()
        expect(view.$('.wrapper')).toBeShown()

        # wait for the minShown timeout to expire, and check again
        @clock.tick(1001)
        expect(view.$('.wrapper')).toBeHiding()

    it "a maxShown view should hide by itself", ->
        view = new CMS.Views.Notification({model: @model, maxShown: 1000})
        expect(CMS.Views.Notification.prototype.show).toHaveBeenCalled()
        expect(view.$('.wrapper')).toBeShown()

        # wait for the maxShown timeout to expire, and check again
        @clock.tick(1001)
        expect(view.$('.wrapper')).toBeHiding()

    it "a minShown view can stay visible longer", ->
        view = new CMS.Views.Notification({model: @model, minShown: 1000})
        expect(CMS.Views.Notification.prototype.show).toHaveBeenCalled()
        expect(view.$('.wrapper')).toBeShown()

        # wait for the minShown timeout to expire, and check again
        @clock.tick(1001)
        expect(CMS.Views.Notification.prototype.hide).not.toHaveBeenCalled()
        expect(view.$('.wrapper')).toBeShown()

        # can now hide immediately
        view.hide()
        expect(view.$('.wrapper')).toBeHiding()

    it "a maxShown view can hide early", ->
        view = new CMS.Views.Notification({model: @model, maxShown: 1000})
        expect(CMS.Views.Notification.prototype.show).toHaveBeenCalled()
        expect(view.$('.wrapper')).toBeShown()

        # wait 50 milliseconds, and hide it early
        @clock.tick(50)
        view.hide()
        expect(view.$('.wrapper')).toBeHiding()

        # wait for timeout to expire, make sure it doesn't do anything weird
        @clock.tick(1000)
        expect(view.$('.wrapper')).toBeHiding()

    it "a view can have both maxShown and minShown", ->
        view = new CMS.Views.Notification({model: @model, minShown: 1000, maxShown: 2000})
