foundation / foundation-sites

The most advanced responsive front-end framework in the world. Quickly create prototypes and production code for sites that work on any kind of device.
https://get.foundation
MIT License
29.66k stars 5.49k forks source link

Failing Unit Tests - develop Branch #10935

Closed clcrutch closed 6 years ago

clcrutch commented 6 years ago

How to reproduce this bug:

  1. Execute npm test

What should happen:

What happened instead:

> foundation-sites@6.4.3 test C:\git\foundation-sites
> npm run test:sass && npm run test:javascript:phantomjs

> foundation-sites@6.4.3 test:sass C:\git\foundation-sites
> mocha test/sass/test_sass.js

npm : WARNING: breakpoint(): "xxxxlarge" is not defined in your $breakpoints 
setting.
At line:1 char:1
+ npm test 1> output 2>&1
+ ~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (WARNING: breakp...points setting. 
   :String) [], RemoteException
    + FullyQualifiedErrorId : NativeCommandError

Backtrace:
    scss/util/_breakpoint.scss:73, in function `breakpoint`
    test/sass/_breakpoint.scss:97, in mixin `@content`
    node_modules/sass-true/sass/true/_tests.scss:17, in mixin `test`
    test/sass/_breakpoint.scss:96, in mixin `@content`
    node_modules/sass-true/sass/true/_modules.scss:17, in mixin `test-module`
    test/sass/_breakpoint.scss:6

  Breakpoint
    √ Breakpoint (Named to Em) [function]
    √ Breakpoint (Rem/Px to Em) [function]
    √ Breakpoint (Only Range) [function]
    √ Breakpoint (Named Down Range) [function]
    √ Breakpoint (Value Down Range) [function]
    √ Breakpoint (Empty String) [function]
    √ Breakpoint (Orientation/Retina) [function]
    √ Breakpoint (Unknown Value) [function]
    √ Map Serialize [function]
    √ Map Next [function]
    √ Get Breakpoint Value [function]

  Color
    √ Foreground (Black) [function]
    √ Foreground (White) [function]
    √ Smart Scale (Darken) [function]
    √ Smart Scale (Lighten) [function]

  Selector
    √ Selector [function]
    √ Selector (with modifiers) [function]

  Units
    √ Strip Units [function]
    √ Convert To Rem [function]
    √ Rem Calculator [function]
    √ Breakpoint To Em [function]

  Value
    √ Value (Not Falsey) [function]
    √ Value (Falsey) [function]
    √ Get Side [function]
    √ Get Border Value [function]
    √ Map Deep Get [function]
    √ Map Safe Get [function]

  Components
    √ Ratio to Percentage [function]
    √ Grid Column [function]
    √ Flex Grid Column [function]

  30 passing (19ms)

> foundation-sites@6.4.3 test:javascript:phantomjs C:\git\foundation-sites
> npm run test:javascript:transpile && mocha-phantomjs --ignore-resource-errors test/javascript/index.html

> foundation-sites@6.4.3 test:javascript:transpile C:\git\foundation-sites
> gulp sass:foundation && gulp test:transpile-js

[17:08:07] Using gulpfile C:\git\foundation-sites\gulpfile.js
[17:08:07] Starting 'sass:deps'...
[17:08:07] Finished 'sass:deps' after 108 ms
[17:08:07] Starting 'sass:foundation'...
WARNING: 
null was passed to rem-calc(), which is not a number.

Backtrace:
    scss/util/_unit.scss:78, in function `-zf-to-rem`
    scss/util/_unit.scss:47, in function `rem-calc`
    scss/xy-grid/_cell.scss:84, in function `if`
    scss/xy-grid/_cell.scss:84, in mixin `-xy-cell-properties`
    scss/xy-grid/_cell.scss:167, in mixin `xy-cell-static`
    scss/xy-grid/_classes.scss:275, in mixin `xy-vertical-grid-classes`
    scss/xy-grid/_classes.scss:470, in mixin `foundation-xy-grid-classes`
    scss/foundation.scss:84, in mixin `foundation-everything`
    assets/foundation-prototype.scss:3

WARNING: 
null was passed to rem-calc(), which is not a number.

Backtrace:
    scss/util/_unit.scss:78, in function `-zf-to-rem`
    scss/util/_unit.scss:47, in function `rem-calc`
    scss/xy-grid/_cell.scss:84, in function `if`
    scss/xy-grid/_cell.scss:84, in mixin `-xy-cell-properties`
    scss/xy-grid/_cell.scss:167, in mixin `xy-cell-static`
    scss/xy-grid/_classes.scss:275, in mixin `xy-vertical-grid-classes`
    scss/xy-grid/_classes.scss:470, in mixin `foundation-xy-grid-classes`
    scss/foundation.scss:84, in mixin `foundation-everything`
    assets/foundation-rtl.scss:5

WARNING: 
null was passed to rem-calc(), which is not a number.

Backtrace:
    scss/util/_unit.scss:78, in function `-zf-to-rem`
    scss/util/_unit.scss:47, in function `rem-calc`
    scss/xy-grid/_cell.scss:84, in function `if`
    scss/xy-grid/_cell.scss:84, in mixin `-xy-cell-properties`
    scss/xy-grid/_cell.scss:167, in mixin `xy-cell-static`
    scss/xy-grid/_classes.scss:275, in mixin `xy-vertical-grid-classes`
    scss/xy-grid/_classes.scss:470, in mixin `foundation-xy-grid-classes`
    scss/foundation.scss:84, in mixin `foundation-everything`
    assets/foundation.scss:3

[17:08:10] Finished 'sass:foundation' after 3.59 s

scss\_global.scss
  169:7  warning  Vendor prefixes should not be used  no-vendor-prefixes
  170:7  warning  Vendor prefixes should not be used  no-vendor-prefixes

Γ£û 2 problems (0 errors, 2 warnings)

scss\components\_accordion-menu.scss
   54:3  warning  Pseudo-class should be nested within its parent Class                 force-pseudo-nesting
   65:1  warning  Space expected between blocks                                         empty-line-between-blocks
   65:3  warning  Pseudo-element should be nested within its parent Type-selector       force-pseudo-nesting
   65:3  warning  Class should be nested within its parent Class                        force-element-nesting
   66:5  warning  Expected `right`, found `left`                                        property-sort-order
   67:5  warning  Expected `left`, found `right`                                        property-sort-order
   69:1  warning  Space expected between blocks                                         empty-line-between-blocks
   69:3  warning  Class should be nested within its parent Class                        force-element-nesting
   69:3  warning  Pseudo-element should be nested within its parent Type-selector       force-pseudo-nesting
   97:1  warning  Space expected between blocks                                         empty-line-between-blocks
   97:5  warning  Type-selector should be nested within its parent Class                force-element-nesting
  101:5  warning  Class should be nested within its parent Class                        force-element-nesting
  106:7  warning  Class should be nested within its parent Class                        force-element-nesting
  114:7  warning  Attribute-selector should be nested within its parent Class           force-attribute-nesting
  114:7  warning  Pseudo-element should be nested within its parent Type-selector       force-pseudo-nesting
  121:3  warning  Type-selector should be nested within its parent Class                force-element-nesting
  141:5  warning  Expected `width`, found `cursor`                                      property-sort-order
  143:5  warning  Expected `height`, found `width`                                      property-sort-order
  144:5  warning  Expected `cursor`, found `height`                                     property-sort-order
  163:3  warning  Pseudo-element should be nested within its parent Attribute-selector  force-pseudo-nesting
  163:3  warning  Attribute-selector should be nested within its parent Class           force-attribute-nesting

Γ£û 21 problems (0 errors, 21 warnings)

scss\components\_accordion.scss
  56:1  warning  Space expected between blocks                                 empty-line-between-blocks
  93:3  warning  Pseudo-class should be nested within its parent Pseudo-class  force-pseudo-nesting

Γ£û 2 problems (0 errors, 2 warnings)

scss\components\_breadcrumbs.scss
  85:7  warning  Pseudo-element should be nested within its parent Pseudo-class  force-pseudo-nesting

Γ£û 1 problem (0 errors, 1 warning)

scss\components\_button-group.scss
  116:7   warning  Pseudo-class should be nested within its parent Pseudo-class  force-pseudo-nesting
  122:9   warning  Pseudo-class should be nested within its parent Pseudo-class  force-pseudo-nesting
  123:14  warning  Pseudo-class should be nested within its parent Pseudo-class  force-pseudo-nesting
  163:19  warning  Whitespace required before {                                  space-before-brace
  215:7   warning  Type-selector should be nested within its parent Class        force-element-nesting
  241:11  warning  Type-selector should be nested within its parent Class        force-element-nesting

Γ£û 6 problems (0 errors, 6 warnings)

scss\components\_button.scss
   98:3   warning  Expected `border`, found `font-family`                              property-sort-order
   99:3   warning  Expected `border-radius`, found `font-weight`                       property-sort-order
  112:3   warning  Vendor prefixes should not be used                                  no-vendor-prefixes
  113:3   warning  Expected `transition`, found `border`                               property-sort-order
  114:3   warning  Expected `font-family`, found `border-radius`                       property-sort-order
  115:3   warning  Expected `font-size`, found `transition`                            property-sort-order
  116:3   warning  Expected `font-weight`, found `font-size`                           property-sort-order
  144:22  warning  No empty blocks allowed                                             no-empty-rulesets
  199:3   warning  Pseudo-class should be nested within its parent Class               force-pseudo-nesting
  199:21  warning  Pseudo-class should be nested within its parent Attribute-selector  force-pseudo-nesting
  200:3   warning  Pseudo-class should be nested within its parent Class               force-pseudo-nesting
  200:21  warning  Pseudo-class should be nested within its parent Attribute-selector  force-pseudo-nesting
  235:3   warning  Pseudo-class should be nested within its parent Class               force-pseudo-nesting
  235:21  warning  Pseudo-class should be nested within its parent Attribute-selector  force-pseudo-nesting
  236:3   warning  Pseudo-class should be nested within its parent Class               force-pseudo-nesting
  236:21  warning  Pseudo-class should be nested within its parent Attribute-selector  force-pseudo-nesting
  270:3   warning  Pseudo-class should be nested within its parent Class               force-pseudo-nesting
  270:21  warning  Pseudo-class should be nested within its parent Attribute-selector  force-pseudo-nesting
  271:3   warning  Pseudo-class should be nested within its parent Class               force-pseudo-nesting
  271:21  warning  Pseudo-class should be nested within its parent Attribute-selector  force-pseudo-nesting
  414:5   warning  Pseudo-element should be nested within its parent Class             force-pseudo-nesting
  420:1   warning  Space expected between blocks                                       empty-line-between-blocks
  420:3   warning  Class should be nested within its parent Type-selector              force-element-nesting
  420:4   warning  Qualifying elements are not allowed for class selectors             no-qualifying-elements

Γ£û 24 problems (0 errors, 24 warnings)

scss\components\_card.scss
  84:5  warning  Expected `display`, found `flex`  property-sort-order
  85:5  warning  Expected `flex`, found `display`  property-sort-order

Γ£û 2 problems (0 errors, 2 warnings)

scss\components\_drilldown.scss
   48:1  warning  Space expected between blocks                                    empty-line-between-blocks
   53:7  warning  Mixins should come before declarations                           mixins-before-declarations
   57:3  warning  Pseudo-element should be nested within its parent Type-selector  force-pseudo-nesting
   57:3  warning  Class should be nested within its parent Class                   force-element-nesting
   58:5  warning  Expected `right`, found `left`                                   property-sort-order
   59:5  warning  Expected `left`, found `right`                                   property-sort-order
   60:5  warning  Mixins should come before declarations                           mixins-before-declarations
   63:3  warning  Pseudo-element should be nested within its parent Type-selector  force-pseudo-nesting
   63:3  warning  Class should be nested within its parent Class                   force-element-nesting
   66:5  warning  Mixins should come before declarations                           mixins-before-declarations
  120:5  warning  Class should be nested within its parent Class                   force-element-nesting
  131:7  warning  Pseudo-element should be nested within its parent Type-selector  force-pseudo-nesting
  138:9  warning  Duplicate properties are not allowed within a block              no-duplicate-properties

Γ£û 13 problems (0 errors, 13 warnings)

scss\components\_dropdown-menu.scss
   67:3   warning  Pseudo-element should be nested within its parent Type-selector  force-pseudo-nesting
   71:3   warning  Pseudo-element should be nested within its parent Type-selector  force-pseudo-nesting
   74:5   warning  Mixins should come before declarations                           mixins-before-declarations
   77:3   warning  Pseudo-element should be nested within its parent Type-selector  force-pseudo-nesting
   84:5   warning  Class should be nested within its parent Type-selector           force-element-nesting
   84:9   warning  Qualifying elements are not allowed for class selectors          no-qualifying-elements
   92:5   warning  Class should be nested within its parent Type-selector           force-element-nesting
   92:9   warning  Qualifying elements are not allowed for class selectors          no-qualifying-elements
  101:7   warning  Class should be nested within its parent Type-selector           force-element-nesting
  101:11  warning  Qualifying elements are not allowed for class selectors          no-qualifying-elements
  106:7   warning  Class should be nested within its parent Type-selector           force-element-nesting
  106:7   warning  Pseudo-element should be nested within its parent Type-selector  force-pseudo-nesting
  106:11  warning  Qualifying elements are not allowed for class selectors          no-qualifying-elements
  122:11  warning  Expected `top`, found `right`                                    property-sort-order
  123:11  warning  Expected `right`, found `left`                                   property-sort-order
  124:11  warning  Expected `left`, found `top`                                     property-sort-order
  146:3   warning  Class should be nested within its parent Class                   force-element-nesting
  164:5   warning  Class should be nested within its parent Class                   force-element-nesting
  187:7   warning  Class should be nested within its parent Class                   force-element-nesting
  195:3   warning  Class should be nested within its parent Class                   force-element-nesting
  206:5   warning  Pseudo-element should be nested within its parent Type-selector  force-pseudo-nesting

Γ£û 21 problems (0 errors, 21 warnings)

scss\components\_dropdown.scss
  46:3  warning  Expected `display`, found `width`               property-sort-order
  47:3  warning  Expected `width`, found `padding`               property-sort-order
  49:3  warning  Expected `padding`, found `visibility`          property-sort-order
  50:3  warning  Expected `visibility`, found `display`          property-sort-order
  64:5  warning  Expected `display`, found `visibility`          property-sort-order
  65:5  warning  Expected `visibility`, found `display`          property-sort-order
  75:5  warning  Class should be nested within its parent Class  force-element-nesting

Γ£û 7 problems (0 errors, 7 warnings)

scss\components\_flex.scss
  83:7  warning  Class should be nested within its parent Class  force-element-nesting

Γ£û 1 problem (0 errors, 1 warning)

[17:08:19] Using gulpfile C:\git\foundation-sites\gulpfile.js
[17:08:19] Starting 'javascript:plugin-core'...
[17:08:19] Starting 'javascript:deps'...
[17:08:20] Finished 'javascript:deps' after 288 ms
[17:08:20] Version: webpack 3.5.5
             Asset     Size  Chunks             Chunk Names
foundation.core.js  30.2 kB       0  [emitted]  foundation.core
[17:08:20] Finished 'javascript:plugin-core' after 1.11 s
[17:08:20] Starting 'javascript:plugins'...
[17:08:25] Version: webpack 3.5.5
                                Asset     Size  Chunks             Chunk Names
       foundation.responsiveToggle.js  12.1 kB      15  [emitted]  foundation.responsiveToggle
                foundation.tooltip.js  42.8 kB       0  [emitted]  foundation.tooltip
               foundation.dropdown.js  43.5 kB       2  [emitted]  foundation.dropdown
                 foundation.slider.js  44.4 kB       3  [emitted]  foundation.slider
         foundation.responsiveMenu.js  13.2 kB       4  [emitted]  foundation.responsiveMenu
              foundation.offcanvas.js  38.8 kB       5  [emitted]  foundation.offcanvas
                 foundation.sticky.js    35 kB       6  [emitted]  foundation.sticky
                 foundation.reveal.js    38 kB       7  [emitted]  foundation.reveal
foundation.responsiveAccordionTabs.js    18 kB       8  [emitted]  foundation.responsiveAccordionTabs
           foundation.dropdownMenu.js    24 kB       9  [emitted]  foundation.dropdownMenu
              foundation.drilldown.js  31.5 kB      10  [emitted]  foundation.drilldown
              foundation.equalizer.js  18.3 kB      11  [emitted]  foundation.equalizer
          foundation.accordionMenu.js  19.1 kB      12  [emitted]  foundation.accordionMenu
                foundation.toggler.js  22.2 kB      13  [emitted]  foundation.toggler
                   foundation.tabs.js  22.1 kB      14  [emitted]  foundation.tabs
                  foundation.orbit.js  25.8 kB       1  [emitted]  foundation.orbit
               foundation.magellan.js  15.8 kB      16  [emitted]  foundation.magellan
            foundation.interchange.js  13.4 kB      17  [emitted]  foundation.interchange
              foundation.accordion.js  17.4 kB      18  [emitted]  foundation.accordion
           foundation.smoothScroll.js    11 kB      19  [emitted]  foundation.smoothScroll
                  foundation.abide.js  32.7 kB      20  [emitted]  foundation.abide
          foundation.util.triggers.js  14.8 kB      21  [emitted]  foundation.util.triggers
            foundation.util.motion.js  7.22 kB      22  [emitted]  foundation.util.motion
          foundation.util.keyboard.js  9.82 kB      23  [emitted]  foundation.util.keyboard
             foundation.util.timer.js  5.12 kB      24  [emitted]  foundation.util.timer
              foundation.util.nest.js   5.9 kB      25  [emitted]  foundation.util.nest
        foundation.util.mediaQuery.js  10.6 kB      26  [emitted]  foundation.util.mediaQuery
       foundation.util.imageLoader.js  5.14 kB      27  [emitted]  foundation.util.imageLoader
               foundation.util.box.js  12.8 kB      28  [emitted]  foundation.util.box
             foundation.util.touch.js  9.19 kB      29  [emitted]  foundation.util.touch
[17:08:25] Finished 'javascript:plugins' after 4.72 s
[17:08:25] Starting 'javascript:foundation'...
[17:08:29] Version: webpack 3.5.5
        Asset    Size  Chunks                    Chunk Names
foundation.js  439 kB       0  [emitted]  [big]  foundation
[17:08:29] Finished 'javascript:foundation' after 3.67 s
[17:08:29] Starting 'test:transpile-js'...
[17:08:30] Finished 'test:transpile-js' after 692 ms


  Abide
    constructor()
      Γ£ô stores the element & plugin options
      Γ£ô the options are recursively merged
    validateInput()
      Γ£ô returns true for hidden inputs
      Γ£ô returns true for inputs with [data-abide-ignore]
      Γ£ô returns true for checked checkboxes
      Γ£ô returns false for unchecked checkboxes
      Γ£ô returns true for selected select option
      Γ£ô returns false for unselected select option
    addErrorClasses()
      Γ£ô adds aria-invalid attribute to element
    addGlobalErrorA11yAttributes()
      Γ£ô adds [aria-live] attribute on element
    addA11yAttributes()
      1) adds [aria-describedby] attribute to field and [for] attribute to form error
      2) adds attributes and ids when no id is set
    removeErrorClasses()
      Γ£ô removes aria-invalid attribute from element
    removeRadioErrorClasses()
      Γ£ô removes aria-invalid attribute from radio group
    resetForm()
      Γ£ô removes aria-invalid attribute from elements

  Accordion
    constructor()
      Γ£ô stores the element and plugin options
    up()
      Γ£ô closes the targeted container if allowAllClosed is true
      Γ£ô toggles attributes of title of the targeted container
      Γ£ô not closes the open container if allowAllClosed is false
    down()
      Γ£ô opens the targeted container
      Γ£ô toggles attributes of title of the targeted container
      Γ£ô closes open container if multiExpand is false (458ms)
      Γ£ô not closes open container if multiExpand is true
    toggle()
      Γ£ô closes the only open container if allowAllClosed is true
      Γ£ô not closes the only open container if allowAllClosed is false
    keyboard events
      Γ£ô opens next panel on ARROW_DOWN
      Γ£ô opens previous panel on ARROW_UP
      Γ£ô opens related panel on ENTER
      Γ£ô opens related panel on SPACE

  Accordion Menu
    constructor()
      Γ£ô stores the element and plugin options
    up()
      Γ£ô closes the targeted submenu
      Γ£ô toggles attributes of title of the targeted container
      Γ£ô fires up.zf.accordionMenu event (410ms)
    down()
      Γ£ô opens the targeted submenu
      Γ£ô toggles attributes of title of the targeted submenu
      Γ£ô closes open submenu if multiOpen is false
      Γ£ô not closes open submenu if multiOpen is true
      Γ£ô fires down.zf.accordionMenu event (210ms)
    toggle()
      Γ£ô opens a closed container
      Γ£ô closes an open container
    hideAll()
      Γ£ô closes all accordions

  Drilldown Menu
    constructor()
      Γ£ô stores the element and plugin options
    init()
      Γ£ô stores additional elements
    prepareMenu()
      Γ£ô wraps the submenus
      Γ£ô adds ARIA attributes
    show()
      Γ£ô shows the given submenu
      Γ£ô toggles ARIA attributes
      Γ£ô fires open.zf.drilldown event
    hide()
      Γ£ô hides the given submenu
      Γ£ô toggles ARIA attributes
      Γ£ô fires hide.zf.drilldown event
    hideAll()
      Γ£ô hides all submenus
      Γ£ô fires closed.zf.drilldown event
    back()
      Γ£ô hides current submenu
      Γ£ô shows parent submenu
    keyboard events
      - does not trap focus on root element going down
      - does not trap focus on root element going up
      Γ£ô closes current sub menu using ESC
      Γ£ô moves focus to next element on TAB
      Γ£ô moves focus to previous element on TAB
      Γ£ô moves focus to next element on ARROW_DOWN
      Γ£ô moves focus to previous element on ARROW_UP
      Γ£ô opens child element on ARROW_RIGHT
      Γ£ô focuses parent link if parentLink is true (523ms)
      Γ£ô closes child element on ARROW_LEFT

  Dropdown
    constructor()
      Γ£ô stores the element & plugin options
    open()
      Γ£ô traps focus if trapFocus option is true
    close()
      Γ£ô releases focus if trapFocus option is true
    inferred positioning
      Γ£ô default orientation should be bottom
      Γ£ô gets right alignment from float-right
    closeOnClick option
      Γ£ô not closes a dropdown by clicking on the dropdown if closeOnClick option is true
    keyboard events
      Γ£ô opens Dropdown on SPACE
      Γ£ô focuses Dropdown on SPACE
      Γ£ô does not focus Dropdown when anchor is an input

  Dropdown Menu
    constructor()
      Γ£ô stores the element and plugin options
    keyboard events
      Γ£ô closes current sub menu using ESCAPE
      horizontal
        Γ£ô moves focus to next tab on ARROW_RIGHT
        Γ£ô moves focus to previous tab on ARROW_LEFT
        Γ£ô opens child element of tab on ARROW_DOWN
        Γ£ô moves focus to previous sub element on ARROW_UP
        Γ£ô opens child element of sub menu on ARROW_RIGHT
      vertical
        Γ£ô moves focus to next tab on ARROW_DOWN
        Γ£ô moves focus to previous tab on ARROW_UP
        Γ£ô opens child element of tab on ARROW_RIGHT
        Γ£ô moves focus to previous sub element on ARROW_UP
        Γ£ô opens child element of sub menu on ARROW_RIGHT

  Interchange
    constructor()
      Γ£ô stores the element and plugin options
    replace()
      Γ£ô replaces src attribute of img
      Γ£ô replaces background style of divs
      Γ£ô replaces contents of div with templates
      Γ£ô fires replaced.zf.interchange event
    reflow()
      Γ£ô calls replace for given media query
    generateRules()
      Γ£ô extracts rules from the plugin element
      Γ£ô extracts special queries from the plugin element
    addBreakpoints()
      Γ£ô adds Foundation breakpoints to special queries
    events()
      Γ£ô calls reflow on viewport size change once (60ms)

  Magellan
    scrollToLoc()
      Γ£ô scrolls the selected element into viewport (223ms)
      Γ£ô fails gracefully when target does not exist

  Off Canvas
    constructor()
      Γ£ô stores the element and plugin options
    init()
      Γ£ô finds triggers for the Off Canvas
      Γ£ô sets ARIA attributes
      Γ£ô closes Off Canvas on outside click if closeOnClick option is true
    open()
      Γ£ô toggles ARIA attributes
      Γ£ô adds active classes
      Γ£ô focusses Off Canvas if autoFocus option is true
      Γ£ô traps focus if trapFocus option is true (538ms)
      Γ£ô fires opened.zf.offcanvas event
    close()
      Γ£ô toggles ARIA attributes
      Γ£ô removes active classes
      Γ£ô fires closed.zf.offcanvas event
      Γ£ô releases focus if trapFocus option is true
    toggle()
      Γ£ô opens a closed Off Canvas
      Γ£ô closes an open Off Canvas
    keyboard events
      Γ£ô closes Off Canvas on ESCAPE

  Orbit
    constructor()
      Γ£ô stores the element and plugin options
    init()
      Γ£ô shows the first slide
      Γ£ô hides all slides except the first one
      Γ£ô makes slide with is-active class active initially
    loadBullets()
      Γ£ô stores the bullets
    changeSlide()
      Γ£ô changes slides to the next one for ltr is true
      Γ£ô changes slides to the last one for ltr is false
      Γ£ô changes slides to the chosen one
      Γ£ô toggles ARIA attributes
      Γ£ô fires beforeslidechange.zf.orbit event
      Γ£ô fires slidechange.zf.orbit event
    updateBullets()
      Γ£ô updates the bullets
    events()
      Γ£ô changes slides on bullet click
      Γ£ô changes slides to the previous one
      Γ£ô changes slides to the next one
    geoSync()
      Γ£ô changes slides automatically based on timerDelay option (213ms)
    keyboard events
      Γ£ô moves switches to next slide using ARROW_RIGHT
      Γ£ô moves switches to previous slide using ARROW_LEFT

  Reveal
    constructor()
      Γ£ô stores the element and plugin options
    init()
      Γ£ô sets ARIA attributes for modal
      Γ£ô detects anchor if one exists
      Γ£ô sets ARIA attributes for anchor if one exists
    makeOverlay()
      Γ£ô creates an overlay if overlay option is true
    open()
      Γ£ô opens the modal
      Γ£ô opens the overlay
      Γ£ô toggles ARIA attributes
      Γ£ô adds class to body
      Γ£ô adds optional overlay classes overlay element
      Γ£ô fires open.zf.reveal event
      Γ£ô traps focus if trapFocus option is true
    close()
      Γ£ô closes the modal
      Γ£ô closes the overlay
      Γ£ô toggles ARIA attributes
      Γ£ô removes class from body
      Γ£ô does not remove class from body if another reveal is open
      Γ£ô fires closed.zf.reveal event
      Γ£ô releases focus if trapFocus option is true
      Γ£ô sets focus to anchor (40ms)
      Γ£ô sets focus to anchor that opened it (62ms)
    toggle()
      Γ£ô opens a closed modal
      Γ£ô closes an open modal
    events()
      Γ£ô opens the modal on anchor click
      Γ£ô closes a modal on overlay click if closeOnClick option is true
      Γ£ô not closes a modal on overlay click if closeOnClick option is true
      Γ£ô closes Reveal with click on close button

  Slider
    constructor()
      Γ£ô stores the element and plugin options
    init()
      Γ£ô stores handle, inout and fill elements
      Γ£ô stores two handle and input elements for two sided slider
      Γ£ô is disabled when disable option is true
    setHandlePos()
      Γ£ô positions the handle
      Γ£ô does nothing if disabled option is true
      Γ£ô fires changed.zf.slider event (136ms)
      Γ£ô fires moved.zf.slider event (86ms)
    setValues()
      Γ£ô updates ARIA attributes
      Γ£ô updates input value
    setInitAttr()
      Γ£ô adds ARIA attributes to handle
      Γ£ô adds attributes to input
    keyboard events
      Γ£ô sets value to minimum using HOME
      Γ£ô increases value by step size on ARROW_RIGHT
      Γ£ô increases value by step size on ARROW_UP
      Γ£ô decreases value by step size on ARROW_LEFT
      Γ£ô decreases value by step size on ARROW_DOWN
      Γ£ô decreases value by step size times 10 on SHIFT_ARROW_RIGHT
      Γ£ô decreases value by step size times 10 on SHIFT_ARROW_LEFT

  Tabs
    constructor()
      Γ£ô stores the element and plugin options
    init()
      Γ£ô sets ARIA attributes
    selectTab()
      Γ£ô opens the selected tab via jQuery element
      Γ£ô opens the selected tab via id string
      Γ£ô opens the selected tab with data-tabs-target attribute
      Γ£ô opens the selected tab with data-tabs-target attribute and external href
    _handleTabChange()
      Γ£ô opens the selected tab
      Γ£ô sets ARIA attributes for open tab
      Γ£ô hides the open tab
      Γ£ô sets ARIA attributes for closed tab
      Γ£ô fires change.zf.tabs event with target as data
    keyboard events
      Γ£ô switches to next tab on ARROW_RIGHT
      Γ£ô switches to next tab on ARROW_DOWN
      Γ£ô switches to previous tab on ARROW_LEFT
      Γ£ô switches to previous tab on ARROW_UP

  Toggler
    constructor()
      Γ£ô stores the element and plugin options
    init()
      Γ£ô stores the class defined on the data-toggler attribute
      Γ£ô stores the class defined on the data-toggler attribute (with leading dot)
      Γ£ô stores defined animation classes
      Γ£ô adds Aria attributes to click triggers
      Γ£ô sets aria-expanded to true if the element is visible
      Γ£ô sets aria-expanded to false if the element is invisible
    toggle()
      - calls Toggler._toggleClass() if the element toggles with a class
      - calls Toggler._toggleAnimate() if the element toggles with animation
    toggleClass()
      Γ£ô toggles a class on the element
      Γ£ô updates aria-expanded after the class is toggled
    toggleAnimate()
      - animates an invisible element in
      - animates an visible element out

  Tooltip
    constructor()
      Γ£ô stores the element and plugin options
    init()
      Γ£ô has value of title attribute as content
      Γ£ô has value of tipText option as content
      Γ£ô uses value of template option as template
      Γ£ô uses value of triggerClass option as trigger class
      Γ£ô sets ARIA attributes
    buildTemplate()
      Γ£ô uses value of templateClasses option as template class
    show()
      Γ£ô shows the tooltip
      Γ£ô fires show.zf.tooltip event
    hide()
      Γ£ô hides the tooltip
      Γ£ô fires hide.zf.tooltip event
    toggle()
      Γ£ô shows a hidden tooltip
      Γ£ô hides a visible tooltip

  Foundation box
    GetDimensions()
      Γ£ô should be unable to get dimensions for window
      Γ£ô should be unable to get dimensions for document
      Γ£ô height and width of element
      Γ£ô parent height of element

  Foundation core
    Γ£ô exists on the window
    Γ£ô is a jQuery prototype function
    rtl()
      Γ£ô detects the text direction on the document
    plugin()
      Γ£ô adds Foundation plugins
      Γ£ô uses the name of the Plugin class/function if one is not provided
    registerPlugin()
      - registers a new instance of a plugin
    unregisterPlugin()
      - un-registers a plugin being destroyed
    GetYoDigits()
      Γ£ô generates a random ID matching a given length
      Γ£ô can append a namespace to the number
    RegExpEscape()
      Γ£ô escape all special characters in a string for RegExp

  Keyboard util
    Γ£ô exists on the Foundation API
    parseKey()
      Γ£ô returns the character pressed for a normal key
      Γ£ô returns the character pressed for special keys
      Γ£ô recognizes if CTRL was pressed
      Γ£ô recognizes if ALT was pressed
      Γ£ô recognizes if SHIFT was pressed
      Γ£ô recognizes if multiple modifiers were pressed
    handleKey()
      Γ£ô executes callback for given key event
      Γ£ô executes handled callback for given key event
      Γ£ô executes unhandled callback for given key event
    findFocusable()
      Γ£ô finds focusable elements inside a container
      Γ£ô does not find hidden focusable elements
      Γ£ô does not find disabled focusable elements
      Γ£ô does not find focusable elements with negative tabindex
    trapFocus()
      Γ£ô moves the focus to the first focusable element
      Γ£ô moves the focus to the last focusable element
    releaseFocus()
      Γ£ô stops trapping the focus at the end
      Γ£ô stops trapping the focus at the top

  241 passing (6s)
  8 pending
  2 failing

  1) Abide addA11yAttributes() adds [aria-describedby] attribute to field and [for] attribute to form error:
     AssertionError: expected { Object (length, prevObject, ...) } to have a 'for' attribute
      at file:///C:/git/foundation-sites/test/javascript/lib/chai.js:874
      at file:///C:/git/foundation-sites/test/javascript/lib/chai-jquery.js:66
      at file:///C:/git/foundation-sites/test/javascript/lib/chai.js:4027
      at file:///C:/git/foundation-sites/test/javascript/js-tests.js:112
      at callFn (file:///C:/git/foundation-sites/test/javascript/lib/mocha.js:4202)
      at file:///C:/git/foundation-sites/test/javascript/lib/mocha.js:4195
      at file:///C:/git/foundation-sites/test/javascript/lib/mocha.js:4661
      at file:///C:/git/foundation-sites/test/javascript/lib/mocha.js:4790
      at next (file:///C:/git/foundation-sites/test/javascript/lib/mocha.js:4581)
      at file:///C:/git/foundation-sites/test/javascript/lib/mocha.js:4591
      at next (file:///C:/git/foundation-sites/test/javascript/lib/mocha.js:4523)
      at file:///C:/git/foundation-sites/test/javascript/lib/mocha.js:4559
      at timeslice (file:///C:/git/foundation-sites/test/javascript/lib/mocha.js:12326)

  2) Abide addA11yAttributes() adds attributes and ids when no id is set:
     AssertionError: expected { Object (length, prevObject, ...) } to have a 'id' attribute
      at file:///C:/git/foundation-sites/test/javascript/lib/chai.js:874
      at file:///C:/git/foundation-sites/test/javascript/lib/chai-jquery.js:66
      at file:///C:/git/foundation-sites/test/javascript/lib/chai.js:4027
      at file:///C:/git/foundation-sites/test/javascript/js-tests.js:125
      at callFn (file:///C:/git/foundation-sites/test/javascript/lib/mocha.js:4202)
      at file:///C:/git/foundation-sites/test/javascript/lib/mocha.js:4195
      at file:///C:/git/foundation-sites/test/javascript/lib/mocha.js:4661
      at file:///C:/git/foundation-sites/test/javascript/lib/mocha.js:4790
      at next (file:///C:/git/foundation-sites/test/javascript/lib/mocha.js:4581)
      at file:///C:/git/foundation-sites/test/javascript/lib/mocha.js:4591
      at next (file:///C:/git/foundation-sites/test/javascript/lib/mocha.js:4523)
      at file:///C:/git/foundation-sites/test/javascript/lib/mocha.js:4559
      at timeslice (file:///C:/git/foundation-sites/test/javascript/lib/mocha.js:12326)


npm

ERR!

code
 ELIFECYCLE

npm

ERR!

errno
 2

npm

ERR!
 foundation-sites@6.4.3 test:javascript:phantomjs: `npm run 
test:javascript:transpile && mocha-phantomjs --ignore-resource-errors 
test/javascript/index.html`

npm

ERR!
 Exit status 2

npm

ERR!

npm

ERR!
 Failed at the foundation-sites@6.4.3 test:javascript:phantomjs script.

npm

ERR!
 This is probably not a problem with npm. There is likely additional logging 
output above.

npm

ERR!
 A complete log of this run can be found in:

npm

ERR!
     C:\Users\chris.crutchfield\AppData\Roaming\npm-cache\_logs\2018-02-13T01_0
8_38_331Z-debug.log

npm

ERR!
 Test failed.  See above for more details.

Browser(s) and Device(s) tested on:

Foundation Version(s) you are using:

DanielRuf commented 6 years ago

See https://github.com/zurb/foundation-sites/issues/10886

We are aware of it and I am currently working on a solution.

DanielRuf commented 6 years ago

If you want to run the unit tests, try npm install jquery@3.2.1 && npm run test

clcrutch commented 6 years ago

This occurs even after running npm install jquery@3.2.1. I just want to confirm that this is still a duplicate.

DanielRuf commented 6 years ago

Hm not sure as this is another bug as it seems. Is this the current head and what is your system setup (node, npm, ...)?

I'll try to reproduce it but I doubt that it is reproducible on my machines (node 8, npm 5).

clcrutch commented 6 years ago

The main machine I've been testing on has the following config:

I've also tested on a two other machines:

I apologize about the lack of details about the other two machines. I won't have access to them again for a few more hours. When have access again, I'll update with the remaining details.

DanielRuf commented 6 years ago

guess what:

Daniel@Daniel-MSI MINGW64 ~/foundation-sites (develop)
$ npm ls jquery
foundation-sites@6.4.3 C:\Users\Daniel\foundation-sites
+-- corejs-typeahead@1.2.1
| `-- jquery@3.2.1  deduped
+-- jquery@3.2.1
`-- motion-ui@1.2.3
  `-- jquery@3.2.1  deduped
DanielRuf commented 6 years ago

jquery 3.3.1 would produce 40 failing tests. So it seems there was really a change on our side that introduced a regression in the unit tests.

clcrutch commented 6 years ago

I've rerun the unit tests against the v6.4.3 tag in an attempt to verify that it's not something weird in my setup.

With the v6.4.3 tag, and jQuery 3.2.1, all unit tests pass.

DanielRuf commented 6 years ago

With the v6.4.3 tag, and jQuery 3.2.1, all unit tests pass.

Sure, it is a change in the develop branch after the 6.4.3 release. The releases are fine and the tagged revisions.