Sha256: 023274f11454f02a2e022dad39c178fead5580cf8a851aaa70e946952e7d0140

Contents?: true

Size: 1.77 KB

Versions: 33

Compression:

Stored size: 1.77 KB

Contents

/* global describe it expect beforeEach spyOn */

var $ = window.jQuery

describe('primary-links', function () {
  'use strict'
  var GOVUK = window.GOVUK

  var shortList, mediumList

  beforeEach(function () {
    shortList = $('<ul><li class="primary">one</li><li>two</li></ul>')
    mediumList = $('<ul><li class="primary">one</li><li>two</li><li>three</li></ul>')
  })

  it('visually hides extra links', function () {
    new GOVUK.PrimaryList(mediumList, '.primary') // eslint-disable-line no-new

    expect(mediumList.find('.visuallyhidden').length).toBe(2)
  })

  it('creates appropriate toggle text', function () {
    var short = new GOVUK.PrimaryList(shortList, '.primary')
    var medium = new GOVUK.PrimaryList(mediumList, '.primary')

    expect(short.toggleText()).toEqual('+1 other')
    expect(medium.toggleText()).toEqual('+2 others')
  })

  it('add a toggle link', function () {
    var container = $('<div>').append(mediumList)
    new GOVUK.PrimaryList(mediumList, '.primary') // eslint-disable-line no-new

    expect(container.find('a').length).toBe(1)
  })

  it('show extra links when toggled', function () {
    var list = new GOVUK.PrimaryList(mediumList, '.primary')
    var event = { preventDefault: function () {} }
    spyOn(event, 'preventDefault')
    spyOn(list, 'showExtraLinks')

    list.toggleLinks(event)
    expect(event.preventDefault).toHaveBeenCalled()
    expect(list.showExtraLinks).toHaveBeenCalled()
  })

  it('only adds toggle if more than one extra link', function () {
    new GOVUK.PrimaryList(shortList, '.primary') // eslint-disable-line no-new
    new GOVUK.PrimaryList(mediumList, '.primary') // eslint-disable-line no-new

    expect(shortList.find('.visuallyhidden').length).toBe(0)
    expect(mediumList.find('.visuallyhidden').length).toBe(2)
  })
})

Version data entries

33 entries across 33 versions & 2 rubygems

Version Path
govuk_frontend_toolkit-9.0.1 app/assets/spec/unit/primary-links.spec.js
govuk_frontend_toolkit-9.0.0 app/assets/spec/unit/primary-links.spec.js
govuk_frontend_toolkit-8.2.0 app/assets/spec/unit/primary-links.spec.js
govuk_frontend_toolkit-8.1.0 app/assets/spec/unit/primary-links.spec.js
govuk_frontend_toolkit-8.0.0 app/assets/spec/unit/primary-links.spec.js
govuk_frontend_toolkit-7.6.0 app/assets/spec/unit/primary-links.spec.js
idsk_frontend_toolkit-8.4.4 app/assets/spec/unit/primary-links.spec.js
idsk_frontend_toolkit-7.4.3 app/assets/spec/unit/primary-links.spec.js
govuk_frontend_toolkit-7.5.0 app/assets/spec/unit/primary-links.spec.js
idsk_frontend_toolkit-7.4.2 app/assets/spec/unit/primary-links.spec.js
govuk_frontend_toolkit-7.4.2 app/assets/spec/unit/primary-links.spec.js
govuk_frontend_toolkit-7.4.1 app/assets/spec/unit/primary-links.spec.js
govuk_frontend_toolkit-7.4.0 app/assets/spec/unit/primary-links.spec.js
govuk_frontend_toolkit-7.3.0 app/assets/spec/unit/primary-links.spec.js
govuk_frontend_toolkit-7.2.0 app/assets/spec/unit/primary-links.spec.js
govuk_frontend_toolkit-7.1.0 app/assets/spec/unit/primary-links.spec.js
govuk_frontend_toolkit-7.0.1 app/assets/spec/unit/primary-links.spec.js
govuk_frontend_toolkit-7.0.0 app/assets/spec/unit/primary-links.spec.js
govuk_frontend_toolkit-6.0.4 app/assets/spec/unit/primary-links.spec.js
govuk_frontend_toolkit-6.0.3 app/assets/spec/unit/primary-links.spec.js