kolide / fleet

A flexible control server for osquery fleets
https://kolide.com/fleet
MIT License
1.1k stars 261 forks source link

JS tests failing on master #1186

Closed zwass closed 7 years ago

zwass commented 7 years ago

After clearing the build cache, the JS tests fail with the following output (See https://circleci.com/gh/kolide/kolide/3224):

_mocha --compilers js:babel-core/register,tsx:typescript-require  \
    --recursive "frontend/**/*.tests.js*" \
    --require ignore-styles \
    --require "frontend/.test.setup.js" \
    --require "frontend/test/loaderMock.js"
Warning: Failed prop type: Invalid prop `src` of type `function` supplied to `OrgLogoIcon`, expected `string`.
    in OrgLogoIcon (created by AppConfigForm)
    in AppConfigForm (created by Form)
    in Form (created by Unknown)
    in Unknown

(node:446) DeprecationWarning: 'root' is deprecated, use 'global'
  App - component
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): FetchError: request to http://localhost:8080/api/v1/kolide/targets failed, reason: connect ECONNREFUSED 127.0.0.1:8080
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 2): [object Object]
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 3): [object Object]
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 4): FetchError: request to http://localhost:8080/api/v1/kolide/targets failed, reason: connect ECONNREFUSED 127.0.0.1:8080
    ✓ renders
    ✓ loads the current user if there is an auth token but no user
    ✓ does not load the current user if is it already loaded
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 5): undefined
    ✓ does not load the current user if there is no auth token

  AuthenticatedAdminRoutes - layout
    ✓ redirects to the homepage if the user is not an admin
    ✓ does not redirect if the user is an admin

  AuthenticatedRoutes - component
    ✓ renders if there is a user in state
    ✓ redirects to reset password is force_password_reset is true
    ✓ redirects to login without a user
    ✓ does not redirect to login if the user is loading

  DropdownButton - component
    ✓ calls the clicked item's onClick attribute

  EllipsisMenu - component
    ✓ Displays children on click

  EllipsisMenu - helpers
    #calculateTooltipDirection
      ✓ returns "left" if the element does not fit to the right in the browser
      ✓ returns "right" if the element fits to the right in the browser

  Footer - component
    ✓ renders

  AppConfigForm - form
    Organization Name input
      ✓ renders an input field (49ms)
    Organization Avatar input
      ✓ renders an input field (45ms)
    Kolide App URL input
      ✓ renders an input field
    Sender Address input
      ✓ renders an input field
    SMTP Server input
      ✓ renders an input field
    Port input
      ✓ renders an input field
    Enable SSL/TLS input
Warning: Checkbox is changing an uncontrolled input of type checkbox to be controlled. Input elements should not switch from uncontrolled to controlled (or vice versa). Decide between using a controlled or uncontrolled input element for the lifetime of the component. More info: https://fb.me/react-controlled-components
      ✓ renders an input field
    SMTP user name input
      ✓ renders an input field
    SMTP user password input
      ✓ renders an HTML password input
      ✓ renders an input field
    Advanced options
      ✓ does not render advanced options by default
      ✓ renders advanced options when "Advanced Options" is clicked (60ms)

  AppConfigForm - validations
    ✓ returns a valid object when the form data is valid
    ✓ validates presence of the org_name field
    ✓ validates presence of the kolide_server_url field
    smtp configurations
      ✓ validates the sender address
      ✓ validates the smtp server
      ✓ validates the smtp server
      ✓ validates the password if auth type is not "none"
      ✓ validates the user_name if auth type is not "none"
      ✓ does not validate smtp config if only password is present and it is the fake password
      ✓ does not validate the user_name and password if the auth type is "none"

  EditUserForm - form
    ✓ sends the users changed attributes when the form is submitted

  ChangePasswordForm - component
    ✓ has the correct fields (49ms)
    ✓ renders the password fields as HTML password fields
    ✓ calls the handleSubmit props with form data
    ✓ calls the onCancel prop when CANCEL is clicked
    ✓ does not submit when the new password is invalid (38ms)

  ConfigOptionForm - form
    1) renders form fields for the config option name and value
    2) calls the onChangeFunc prop when the form updates
Warning: Failed prop type: The prop `value` is marked as required in `InputField`, but its value is `null`.
    in InputField (created by ConfigOptionForm)
    in ConfigOptionForm (created by Form)
    in Form (created by Unknown)
    in Unknown
Warning: `value` prop on `input` should not be null. Consider using the empty string to clear the component or `undefined` for uncontrolled components.
    in input (created by InputField)
    in div (created by FormField)
    in FormField (created by InputField)
    in InputField (created by ConfigOptionForm)
    in form (created by ConfigOptionForm)
    in ConfigOptionForm (created by Form)
    in Form (created by Unknown)
    in Unknown
    ✓ renders the input fields as disabled when the option is read_only or name and value are present (97ms)
    ✓ calls onRemove with the formdata when the ex icon is clicked

  ConfigOptionsForm - form
Warning: Failed prop type: The prop `onRemoveOption` is marked as required in `ConfigOptionsForm`, but its value is `undefined`.
    in ConfigOptionsForm
Warning: Failed prop type: The prop `onFormUpdate` is marked as required in `ConfigOptionsForm`, but its value is `undefined`.
    in ConfigOptionsForm
Warning: Failed prop type: The prop `onRemove` is marked as required in `ConfigOptionForm`, but its value is `undefined`.
    in ConfigOptionForm (created by Form)
    in Form (created by ConfigOptionsForm)
    in li (created by ConfigOptionsForm)
    in ul (created by ConfigOptionsForm)
    in div (created by ConfigOptionsForm)
    in ConfigOptionsForm (created by Unknown)
    in Unknown
    ✓ renders a ConfigOptionForm for each completed config option (57ms)
    ✓ calls the onFormUpdate prop with the old and new option when the option is updated
    error rendering
      ✓ sets errors on the ConfigOptionForm correctly when there are errors
      ✓ sets errors on the ConfigOptionForm correctly when there are errors on a different object
      ✓ sets errors on the ConfigOptionForm correctly when there are no errors

  ConfigurePackQueryForm - component
    form fields
      3) updates form state
    submitting the form
      4) submits the form with the form data

  ConfirmInviteForm - component
    ✓ renders
    ✓ renders the base error
    ✓ calls the handleSubmit prop with the invite_token when valid
    name input
      ✓ changes form state on change
      ✓ validates the field must be present
    username input
      ✓ changes form state on change
      ✓ validates the field must be present
    password input
      ✓ changes form state on change
      ✓ validates the field must be present
    password_confirmation input
      ✓ changes form state on change
      ✓ validates the password_confirmation matches the password
      ✓ validates the field must be present

  Checkbox - component
    ✓ renders
    ✓ calls the "onChange" handler when changed

  Dropdown - component
    ✓ renders the dropdown
    5) selects a value from dropdown

  TargetOption - component
    ✓ renders a label option for label targets
    ✓ renders a host option for host targets
    ✓ calls the onSelect prop when + icon button is clicked
    ✓ calls the onMoreInfoClick prop when the item content is clicked

  ForgotPasswordForm - component
    ✓ renders the base error
    ✓ renders an InputFieldWithIcon components
    ✓ updates component state when the email field is changed
    ✓ it does not submit the form when the form fields have not been filled out
    ✓ submits the form data when the form is submitted
    ✓ does not submit the form if the email is not valid

  LoginForm - component
    ✓ renders the base error
    ✓ renders 2 InputField components
    ✓ updates component state when the username field is changed
    ✓ updates component state when the password field is changed
    ✓ it does not submit the form when the form fields have not been filled out
    ✓ submits the form data when form is submitted

  EditPackForm - component
    form fields
      ✓ has the correct form fields
    form submission
      ✓ submits the forms with the form data (91ms)
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 6): FetchError: request to http://localhost:8080/api/v1/kolide/targets failed, reason: connect ECONNREFUSED 127.0.0.1:8080
      ✓ calls the onCancel prop when "Cancel" is clicked (50ms)
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 7): FetchError: request to http://localhost:8080/api/v1/kolide/targets failed, reason: connect ECONNREFUSED 127.0.0.1:8080

  PackForm - component
    ✓ renders the base error (95ms)
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 8): FetchError: request to http://localhost:8080/api/v1/kolide/targets failed, reason: connect ECONNREFUSED 127.0.0.1:8080
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 9): FetchError: request to http://localhost:8080/api/v1/kolide/targets failed, reason: connect ECONNREFUSED 127.0.0.1:8080
    ✓ renders the correct components (73ms)
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 10): FetchError: request to http://localhost:8080/api/v1/kolide/targets failed, reason: connect ECONNREFUSED 127.0.0.1:8080
    ✓ validates the query pack name field (58ms)
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 11): FetchError: request to http://localhost:8080/api/v1/kolide/targets failed, reason: connect ECONNREFUSED 127.0.0.1:8080
    ✓ calls the handleSubmit prop when a valid form is submitted (52ms)
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 12): FetchError: request to http://localhost:8080/api/v1/kolide/targets failed, reason: connect ECONNREFUSED 127.0.0.1:8080

  QueryForm - component
Warning: Failed prop type: The prop `onSelect` is marked as required in `SelectTargetsDropdown`, but its value is `undefined`.
    in SelectTargetsDropdown (created by QueryForm)
    in QueryForm (created by Form)
    in Form (created by Unknown)
    in Unknown
    ✓ renders the base error (251ms)
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 13): FetchError: request to http://localhost:8080/api/v1/kolide/targets failed, reason: connect ECONNREFUSED 127.0.0.1:8080
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 14): FetchError: request to http://localhost:8080/api/v1/kolide/targets failed, reason: connect ECONNREFUSED 127.0.0.1:8080
    ✓ renders InputFields for the query name and description (75ms)
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 15): FetchError: request to http://localhost:8080/api/v1/kolide/targets failed, reason: connect ECONNREFUSED 127.0.0.1:8080
    ✓ renders a "stop query" button when a query is running (71ms)
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 16): FetchError: request to http://localhost:8080/api/v1/kolide/targets failed, reason: connect ECONNREFUSED 127.0.0.1:8080
    ✓ renders a "run query" button when a query is not running (97ms)
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 17): FetchError: request to http://localhost:8080/api/v1/kolide/targets failed, reason: connect ECONNREFUSED 127.0.0.1:8080
    ✓ calls the onStopQuery prop when the stop query button is clicked (74ms)
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 18): FetchError: request to http://localhost:8080/api/v1/kolide/targets failed, reason: connect ECONNREFUSED 127.0.0.1:8080
    ✓ validates the query name before saving changes (186ms)
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 19): FetchError: request to http://localhost:8080/api/v1/kolide/targets failed, reason: connect ECONNREFUSED 127.0.0.1:8080
    ✓ calls the handleSubmit prop when the form is valid (123ms)
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 20): FetchError: request to http://localhost:8080/api/v1/kolide/targets failed, reason: connect ECONNREFUSED 127.0.0.1:8080
    ✓ enables the Save Changes button when the name input changes (79ms)
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 21): FetchError: request to http://localhost:8080/api/v1/kolide/targets failed, reason: connect ECONNREFUSED 127.0.0.1:8080
    ✓ enables the Save Changes button when the description input changes (101ms)
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 22): FetchError: request to http://localhost:8080/api/v1/kolide/targets failed, reason: connect ECONNREFUSED 127.0.0.1:8080
    ✓ calls the onSaveAsNew prop when "Save As New" is clicked and the form is valid (136ms)
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 23): FetchError: request to http://localhost:8080/api/v1/kolide/targets failed, reason: connect ECONNREFUSED 127.0.0.1:8080
    ✓ does not call the onSaveAsNew prop when "Save As New" is clicked and the form is not valid (163ms)
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 24): FetchError: request to http://localhost:8080/api/v1/kolide/targets failed, reason: connect ECONNREFUSED 127.0.0.1:8080
    ✓ calls the onRunQuery prop with the query text when "Run Query" is clicked and the form is valid (72ms)
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 25): FetchError: request to http://localhost:8080/api/v1/kolide/targets failed, reason: connect ECONNREFUSED 127.0.0.1:8080

  AdminDetails - form
    username input
      ✓ renders an input field
    password input
      ✓ renders an input field
    password confirmation input
      ✓ renders an input field
    email input
      ✓ renders an input field
    submitting the form
      ✓ validates the email field
      ✓ validates the email field
      ✓ validates the password fields match
      ✓ validates the password field
      ✓ submits the form when valid (49ms)

  ConfirmationPage - form
    ✓ renders the user information
    ✓ submits the form

  KolideDetails - form
    kolide web address input
      ✓ renders an input field
      ✓ updates state when the field changes
    submitting the form
      ✓ validates the presence of the kolide web address field
      ✓ validates the kolide web address field starts with https://
      ✓ submits the form when valid

  OrgDetails - form
    organization name input
      ✓ renders an input field
      ✓ updates state when the field changes
    organization logo URL input
      ✓ renders an input field
      ✓ updates state when the field changes
    submitting the form
      ✓ validates presence of org_name field
      ✓ validates the logo url field starts with https://
      ✓ submits the form when valid

  RegistrationForm - component
    ✓ renders AdminDetails and header on the first page
    ✓ renders OrgDetails on the second page
    ✓ renders KolideDetails on the third page
    ✓ renders ConfirmationPage on the fourth page (38ms)

  ResetPasswordForm - component
    ✓ updates component state when the new_password field is changed
    ✓ updates component state when the new_password_confirmation field is changed
    ✓ it does not submit the form when the form fields have not been filled out
    ✓ it does not submit the form when only the new password field has been filled out
    ✓ submits the form data when the form is submitted
    ✓ does not submit the form if the new password confirmation does not match
    ✓ does not submit the form if the password is invalid

  UserSettingsForm - component
Warning: Failed prop type: The prop `onCancel` is marked as required in `UserSettingsForm`, but its value is `undefined`.
    in UserSettingsForm (created by Form)
    in Form (created by Unknown)
    in Unknown
    ✓ has the correct fields
    ✓ calls the handleSubmit props with form data (54ms)
    ✓ initializes the form with the users data

  valid_email - validators
    ✓ returns true for valid emails
    ✓ returns false for invalid emails

  validPassword
    ✓ is invalid if the password is not at least 7 characters including a number and a symbol
    ✓ is valid if the password is at least 7 characters and includes a number and a symbol

  validateEquality - validator
    ✓ returns true for equal inputs
    ✓ returns false for unequal inputs

  validatePresence - validator
    ✓ returns true for valid inputs
    ✓ returns false for invalid inputs

  validateQuery
    ✓ rejects malformed queries (63ms)
    ✓ rejects blank queries
    ✓ rejects create queries (41ms)
    ✓ rejects insert queries (50ms)
    ✓ accepts valid queries (260ms)

  AddHostModal - component
    ✓ clicking Reveal Secret should change input type

  HostDetails - component
    ✓ calls the onDestroyHost prop when the action button is clicked on an offline host
    ✓ calls the onDestroyHost prop when the action button is clicked on a mia host
    ✓ calls the onQueryHost prop when the action button is clicked on an online host

  HostsTable - component
    ✓ calls the onDestroyHost prop when the action button is clicked on an offline host
    ✓ calls the onDestroyHost prop when the action button is clicked on a mia host
    ✓ calls the onQueryHost prop when the action button is clicked on an online host

  Icon - component
    ✓ renders

  OrgLogoIcon - component
    ✓ renders the Kolide Logo by default
    ✓ renders the image source when it is valid

  PlatformIcon - component
    ✓ renders
    ✓ renders text if no icon

  Timer convertSeconds helper
    ✓ converts seconds to hh:mm:ss

  Timer - component
    ✓ play() and pause() function
    ✓ should reset after pause
    ✓ should not reset when stopped
    ✓ should not reset when it continues

  EditPackFormWrapper - component
    ✓ does not render the EditPackForm by default
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 26): FetchError: request to http://localhost:8080/api/v1/kolide/targets failed, reason: connect ECONNREFUSED 127.0.0.1:8080
    ✓ renders the EditPackForm when isEdit is true (49ms)
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 27): FetchError: request to http://localhost:8080/api/v1/kolide/targets failed, reason: connect ECONNREFUSED 127.0.0.1:8080
    ✓ calls onEditPack when EDIT is clicked
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 28): FetchError: request to http://localhost:8080/api/v1/kolide/targets failed, reason: connect ECONNREFUSED 127.0.0.1:8080

  PacksList - component
    ✓ renders
    ✓ calls the onCheckAllPacks prop when select all packs checkbox is checked
    ✓ calls the onCheckPack prop when a pack checkbox is checked

  PacksList - Row - component
Warning: validateDOMNesting(...): <tr> cannot appear as a child of <div>. See div > (unknown) > Row > ClickableTableRow > tr.
    ✓ renders
    ✓ calls the onCheck prop with the value and pack id when checked
    ✓ outputs host count

  QueryPageWrapper - helpers
    #fetchQuery
      when the API call is successful
        ✓ dispatches a load successful action
      when the API call is unsuccessful
        ✓ pushes to the new query page
        ✓ renders a flash error message

  QueryPageWrapper - component
    /queries/:id
      ✓ dispatches an action to get the query when there is no query
      ✓ calls the fetchQuery helper function

  QueryResultsTable - component
    ✓ renders
    ✓ does not return HTML when there are no query results
    ✓ renders a ProgressBar component
    ✓ sets the column headers to the keys of the query results
    ✓ filters by hostname
    ✓ calls the onExportQueryResults prop when the export button is clicked

  ScheduledQueriesList - component
Warning: Failed prop type: The prop `onSelectAllQueries` is marked as required in `ScheduledQueriesList`, but its value is `undefined`.
    in ScheduledQueriesList
    ✓ renders a ScheduledQueriesListItem for each scheduled query
    ✓ renders "No queries found" help text when scheduled queries are available but the scheduled queries are filtered out
    ✓ renders initial help text when no queries have been scheduled yet

  ScheduledQueriesListItem - component
Warning: validateDOMNesting(...): <tr> cannot appear as a child of <div>. See div > (unknown) > ScheduledQueriesListItem > tr.
    ✓ renders the scheduled query data
    ✓ renders a Checkbox component
    ✓ calls the onSelect prop when a checkbox is changed

  ScheduledQueriesListWrapper - helpers
    #filterQueries
      ✓ returns an empty array when given an empty array
      ✓ returns an array of queries that have a matching query name

  ScheduledQueriesListWrapper - component
    ✓ renders the "Remove Query" button when queries have been selected
    ✓ calls the onRemoveScheduledQueries prop (40ms)
    ✓ filters queries (46ms)
    ✓ allows selecting all scheduled queries at once (41ms)

  PanelGroup - component
    ✓ renders a PanelGroupItem for each group item

  PanelGroupItem - component
    ✓ renders the appropriate icon
    ✓ renders the item text
    ✓ renders the item count

  QueryDetailsSidePanel - component
    ✓ renders (43ms)
    ✓ renders a read-only Kolide Ace component with the query text
    ✓ calls the onEditQuery prop when Edit/Run Query is clicked

  QuerySidePanel - component
    ✓ renders the selected table in the dropdown (51ms)
    ✓ calls the onOsqueryTableSelect prop when a new table is selected in the dropdown (50ms)
    ✓ renders a CTA to show more columns (45ms)

  ScheduleQuerySidePanel - component
    ✓ renders SearchPackQuery

  UserBlock - helpers
    #userActionOptions
      ✓ returns the correct options for invites
      ✓ returns the correct options for an enabled user
      ✓ returns the correct options for a disabled user
      ✓ returns the correct options for an admin
      ✓ returns the correct options for the current user
    #userStatusLabel
      ✓ returns the correct options for an invite
      ✓ returns the correct options for an enabled user
      ✓ returns the correct options for a disabled user

  UserBlock - component
    ✓ renders a user block (61ms)
    6) calls the onToggleEditUser prop with the user when Modify Details is selected
    7) calls the onSelect prop with the user when Promote User is selected
    8) calls the onSelect prop with the user when Demote User is selected
    9) calls the onSelect prop with the user when Disable Account is selected
    10) calls the onSelect prop with the user when Enable Account is selected
    11) calls the onSelect prop with the user when Require Password Reset is selected
    ✓ calls the onEditUser prop with the user and updated user when the edit form is submitted

  Kolide API - helpers
    #labelSlug
      ✓ creates a slug for the label
    #formatConfigDataForServer
      ✓ splits config into categories for the server
    #formatSelectedTargetsForApi
      ✓ splits targets into labels and hosts
      ✓ appends `_id` when appendID is specified
    #setupData
      ✓ formats the form data to send to the server

  Kolide - API client
    defaults
      ✓ sets the base URL
    statusLabels
      ✓ #getCounts
    labels
      #create
        ✓ calls the appropriate endpoint with the correct parameters
      #destroy
        ✓ calls the appropriate endpoint with the correct parameters
    configOptions
      ✓ #loadAll
      ✓ #update
    hosts
      #loadAll
        ✓ calls the correct endpoint with the correct params
      #destroy
        ✓ calls the correct endpoint with the correct params
    packs
      ✓ #createPack
      ✓ #destroyPack
      #updatePack
        ✓ sends the host and/or label ids if packs are changed
        ✓ does not send the host or label ids if packs are not changed
    queries
      ✓ #createQuery
      ✓ #destroyQuery
      ✓ getQueries
      ✓ #getQuery
      #run
        ✓ calls the correct endpoint with the correct params
    users
      #changePassword
        ✓ calls the appropriate endpoint with the correct parameters
      #enable
        ✓ calls the appropriate endpoint with the correct parameters
      #updateAdmin
        ✓ calls the appropriate endpoint with the correct parameters
    #getConfig
      ✓ calls the appropriate endpoint with the correct parameters
    #getInvites
      ✓ calls the appropriate endpoint with the correct parameters
    #createScheduledQuery
      ✓ calls the appropriate endpoint with the correct parameters
    #destroyScheduledQuery
      ✓ calls the appropriate endpoint with the correct parameters
    #getScheduledQueries
      ✓ calls the appropriate endpoint with the correct parameters
    #getTargets
      ✓ correctly parses the response
    #getUsers
      ✓ calls the appropriate endpoint with the correct parameters
    #inviteUser
      ✓ calls the appropriate endpoint with the correct parameters
    #me
      ✓ calls the appropriate endpoint with the correct parameters
    #loginUser
      ✓ calls the appropriate endpoint with the correct parameters
    #logout
      ✓ calls the appropriate endpoint with the correct parameters
    #forgotPassword
      ✓ calls the appropriate endpoint with the correct parameters when successful
      ✓ return errors correctly for unsuccessful requests
    #resetPassword
      ✓ calls the appropriate endpoint with the correct parameters when successful
      ✓ return errors correctly for unsuccessful requests
    #revokeInvite
      ✓ calls the appropriate endpoint with the correct parameters
    #setup
      ✓ calls the appropriate endpoint with the correct parameters
    #updateConfig
      ✓ calls the appropriate endpoint with the correct parameters
    #updateQuery
      ✓ calls the appropriate endpoint with the correct parameters
    #updateUser
      ✓ calls the appropriate endpoint with the correct parameters

  CoreLayout - layouts
    ✓ renders the FlashMessage component when notifications are present (76ms)

  AppSettingsPage - component
    ✓ renders
    ✓ renders a warning if SMTP has not been configured (135ms)
    ✓ dismisses the smtp warning when "DISMISS" is clicked (162ms)
    ✓ does not render a warning if SMTP has been configured (108ms)

  UserManagementPage - component
    ✓ goes to the app settings page for the user to resolve their smtp settings (100ms)
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 29): [object Object]
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 30): [object Object]
    ✓ gets users on mount (79ms)
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 31): [object Object]
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 32): [object Object]
    ✓ gets invites on mount (81ms)
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 33): [object Object]
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 34): [object Object]
    rendering
      ✓ does not render if invites are loading
      ✓ does not render if users are loading
      ✓ renders user blocks for users and invites (80ms)
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 35): [object Object]
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 36): [object Object]
      ✓ displays a count of the number of users & invites (82ms)
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 37): [object Object]
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 38): [object Object]
      ✓ displays a disabled "Add User" button if email is not configured (185ms)
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 39): [object Object]
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 40): [object Object]
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 41): [object Object]
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 42): [object Object]
      ✓ displays a SmtpWarning if email is not configured (184ms)
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 43): [object Object]
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 44): [object Object]
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 45): [object Object]
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 46): [object Object]
    updating a user
      ✓ updates the current user with only the updated attributes
      ✓ updates a different user with only the updated attributes

  ConfigOptionsPage - component
    ✓ resets config option defaults (136ms)
    rendering
      ✓ does not render when loading
      ✓ renders when not loading the config
      ✓ renders reset and save buttons
    removing a config option
      ✓ sets the option value to null in state
    adding a config option
      ✓ adds a blank option to state (90ms)
      ✓ only allows one blank config option (66ms)
    updating a config option
      ✓ updates the config option in state

  ConfigOptionsPage - helpers
    #configOptionDropdownOptions
      ✓ returns the available dropdown options
    #configErrorsFor
      ✓ validates presence of the config option name
      ✓ validates uniqueness of config option names
      ✓ returns an empty object when the options are valid
    #formatOptionsForServer
      ✓ sets boolean type options correctly
      ✓ sets int type options correctly
      ✓ sets string type options correctly
    #updatedConfigOptions
      ✓ sets the old options value to null when changing the option name
      ✓ updates the option value when the value changes

  ConfirmInvitePage - component
    ✓ renders
    ✓ renders a ConfirmInviteForm

  ForgotPasswordPage - component
    ✓ renders the ForgotPasswordForm when there is no email prop
    ✓ renders the email sent text when the email prop is present

  ManageHostsPage - helpers
    #filterHosts
      ✓ filters the all hosts label
      ✓ filters the platform label
      ✓ filters the status label
      ✓ filters the custom label

  ManageHostsPage - component
    side panels
      ✓ renders a HostSidePanel when not adding a new label
Warning: Failed prop type: The prop `loadingHosts` is marked as required in `ManageHostsPage`, but its value is `undefined`.
    in ManageHostsPage (created by Connect(ManageHostsPage))
    in Connect(ManageHostsPage)
    in Provider (created by Unknown)
    in Unknown
Warning: Failed prop type: The prop `loadingLabels` is marked as required in `ManageHostsPage`, but its value is `undefined`.
    in ManageHostsPage (created by Connect(ManageHostsPage))
    in Connect(ManageHostsPage)
    in Provider (created by Unknown)
    in Unknown
      ✓ renders a QuerySidePanel when adding a new label (128ms)
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 47): [object Object]
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 48): [object Object]
    header
      ✓ displays "1 Host Total" when there is 1 host
      ✓ displays "#{count} Hosts Total" when there are more than 1 host
    host rendering
      ✓ does not render if hosts are loading
      ✓ does not render if labels are loading
      ✓ render LonelyHost if no hosts available
      ✓ renders message if no hosts available and not on All Hosts
      ✓ renders hosts as HostDetails by default
      ✓ renders hosts as HostsTable when the display is "List"
      ✓ toggles between displays (90ms)
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 49): [object Object]
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 50): [object Object]
      ✓ filters hosts (63ms)
    Adding a new label
      ✓ renders a QueryForm component (110ms)
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 51): [object Object]
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 52): [object Object]
      ✓ displays "New Label Query" as the query form header (129ms)
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 53): [object Object]
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 54): [object Object]
    Active label
      ✓ Displays the all hosts label as the active label by default (58ms)
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 55): [object Object]
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 56): [object Object]
      ✓ Displays the windows label as the active label (38ms)
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 57): [object Object]
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 58): [object Object]
    Delete a label
      ✓ Deleted label after confirmation modal (68ms)
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 59): [object Object]
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 60): [object Object]
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 61): [object Object]
    Delete a host
      ✓ Deleted host after confirmation modal (109ms)
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 62): [object Object]
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 63): [object Object]
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 64): [object Object]
    Add Host
      ✓ Open the Add Host modal from sidebar (48ms)
      ✓ Open the Add Host modal from Lonely Host (48ms)

  LoginPage - component
    when the user is not logged in
      ✓ renders the LoginForm
    when the users session is not recognized
      ✓ renders the LoginForm base errors
    when the user is logged in
      ✓ redirects to the home page

  AllPacksPage - component
    ✓ filters the packs list (73ms)
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 65): [object Object]
Warning: Failed prop type: The prop `loadingPacks` is marked as required in `AllPacksPage`, but its value is `undefined`.
    in AllPacksPage
    ✓ updates checkedPackIDs in state when the select all packs Checkbox is toggled (52ms)
    ✓ updates checkedPackIDs in state when a pack row Checkbox is toggled (54ms)
    rendering
      ✓ does not render when packs are loading
      ✓ renders a PacksList component (39ms)
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 66): [object Object]
      ✓ renders the PackInfoSidePanel by default
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 67): [object Object]
    bulk actions
      ✓ displays the bulk action buttons when a pack is checked (55ms)
      ✓ dispatches the pack update function when disable is clicked (57ms)
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 68): [object Object]
      ✓ dispatches the pack update function when enable is clicked (64ms)
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 69): [object Object]
      ✓ loads a modal when delete is clicked (72ms)
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 70): [object Object]
      ✓ dispatches the pack destroy action when the modal is confirmed (74ms)
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 71): [object Object]
      ✓ does not dispatch the pack destroy action when the modal is canceled (78ms)
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 72): [object Object]
    selecting a pack
      ✓ updates the URL when a pack is selected (67ms)
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 73): [object Object]
      ✓ sets the selectedPack prop (38ms)
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 74): [object Object]
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 75): [object Object]

  EditPackPage - component
    rendering
      ✓ does not render when packs are loading
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 76): [object Object]
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 77): [object Object]
      ✓ does not render when scheduled queries are loading
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 78): [object Object]
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 79): [object Object]
      ✓ does not render when there is no pack
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 80): [object Object]
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 81): [object Object]
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 82): [object Object]
      ✓ renders
      ✓ renders a EditPackFormWrapper component
      ✓ renders a ScheduleQuerySidePanel component
    updating a pack
      ✓ only sends the updated attributes to the server (69ms)
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 83): FetchError: request to http://localhost:8080/api/v1/kolide/targets failed, reason: connect ECONNREFUSED 127.0.0.1:8080

  PackComposerPage - component
    ✓ renders (57ms)
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 84): FetchError: request to http://localhost:8080/api/v1/kolide/targets failed, reason: connect ECONNREFUSED 127.0.0.1:8080
    ✓ renders a PackForm component (88ms)
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 85): FetchError: request to http://localhost:8080/api/v1/kolide/targets failed, reason: connect ECONNREFUSED 127.0.0.1:8080
    ✓ renders a PackInfoSidePanel component (58ms)
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 86): FetchError: request to http://localhost:8080/api/v1/kolide/targets failed, reason: connect ECONNREFUSED 127.0.0.1:8080

  ManageQueriesPage - component
    ✓ filters the queries list (47ms)
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 87): [object Object]
Warning: Failed prop type: The prop `loadingQueries` is marked as required in `ManageQueriesPage`, but its value is `undefined`.
    in ManageQueriesPage
    ✓ updates checkedQueryIDs in state when the check all queries Checkbox is toggled (45ms)
    ✓ updates checkedQueryIDs in state when a query row Checkbox is toggled (46ms)
    ✓ goes to the edit query page when the Edit/Run Query button is the side panel is clicked (47ms)
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 88): [object Object]
    rendering
      ✓ does not render if queries are loading
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 89): [object Object]
      ✓ renders a QueriesList component (58ms)
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 90): [object Object]
      ✓ renders the QueryDetailsSidePanel when a query is selected (46ms)
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 91): [object Object]
      ✓ resets checkedQueryIDs after successfully deleting checked queries (56ms)
      ✓ does not reset checkedQueryIDs if deleting a checked query is  unsuccessful (59ms)
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 92): undefined
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 94): undefined
    bulk delete action
      ✓ displays the delete action button when a query is checked (43ms)
      ✓ calls the API to delete once the Modal has been accepted (72ms)
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 95): [object Object]
      ✓ does not call the API if the Modal is not accepted (98ms)
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 96): [object Object]
    selecting a query
      ✓ updates the URL when a query is selected
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 97): [object Object]
      ✓ sets the selectedQuery prop (44ms)
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 98): [object Object]

  QueryPage - component
    ✓ sets selectedTargets based on host_ids (284ms)
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 99): [object Object]
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 100): FetchError: request to http://localhost:8080/api/v1/kolide/targets failed, reason: connect ECONNREFUSED 127.0.0.1:8080
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 101): [object Object]
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 102): FetchError: request to http://localhost:8080/api/v1/kolide/targets failed, reason: connect ECONNREFUSED 127.0.0.1:8080
    ✓ sets targetError in state when the query is run and there are no selected targets (194ms)
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 103): FetchError: request to http://localhost:8080/api/v1/kolide/targets failed, reason: connect ECONNREFUSED 127.0.0.1:8080
Warning: Failed prop type: The prop `loadingQueries` is marked as required in `QueryPage`, but its value is `undefined`.
    in QueryPage (created by Connect(QueryPage))
    in Connect(QueryPage)
    in Provider (created by Unknown)
    in Unknown
    ✓ calls the onUpdateQuery prop when the query is updated (277ms)
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 104): [object Object]
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 105): FetchError: request to http://localhost:8080/api/v1/kolide/targets failed, reason: connect ECONNREFUSED 127.0.0.1:8080
    rendering
      ✓ does not render when queries are loading
      ✓ renders the QueryForm component (111ms)
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 106): FetchError: request to http://localhost:8080/api/v1/kolide/targets failed, reason: Nock: No match for request POST http://localhost:8080/api/v1/kolide/targets {"selected":{"hosts":[],"labels":[]}}
      ✓ renders the QuerySidePanel component (120ms)
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 107): FetchError: request to http://localhost:8080/api/v1/kolide/targets failed, reason: Nock: No match for request POST http://localhost:8080/api/v1/kolide/targets {"selected":{"hosts":[],"labels":[]}}
    #componentWillReceiveProps
      ✓ resets selected targets and removed the campaign when the hostname changes (172ms)
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 108): FetchError: request to http://localhost:8080/api/v1/kolide/targets failed, reason: Nock: No match for request POST http://localhost:8080/api/v1/kolide/targets {"selected":{"hosts":[1],"labels":[]}}
    export as csv
      ✓ exports the campaign query results in csv format (145ms)
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 109): FetchError: request to http://localhost:8080/api/v1/kolide/targets failed, reason: Nock: No match for request POST http://localhost:8080/api/v1/kolide/targets {"selected":{"hosts":[],"labels":[]}}

  Breadcrumbs - component
    ✓ renders 3 Button components
    ✓ renders page 1 Button as active when the page prop is 1
    ✓ calls the onClick prop with the page # when clicked

  RegistrationPage - component
    ✓ redirects to the login page when a user is logged in
    ✓ displays the Kolide background triangles
    ✓ does not render the RegistrationForm if the user is loading
    ✓ renders the RegistrationForm when there is no user
    ✓ sets the page # to 1
    ✓ displays the setup breadcrumbs (55ms)
    #onSetPage
      ✓ sets state to the page number (43ms)

  ResetPasswordPage - component
    ✓ renders a ResetPasswordForm
    ✓ Redirects to the login page when there is no token or user

  UserSettingsPage - component
    ✓ renders a UserSettingsForm component
    ✓ renders a UserSettingsForm component
    ✓ updates a user with only the updated attributes

  redirect - middleware
    ✓ redirect to /500 when a 500 error message is dispatched
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 110): undefined

  App - actions
    getConfig action
      ✓ calls the api config endpoint
      ✓ dispatches CONFIG_START & CONFIG_SUCCESS actions
    updateConfig action
      ✓ calls the api update config endpoint
      ✓ dispatches CONFIG_START & CONFIG_SUCCESS actions

  redux app node - helpers
    #frontendFormattedConfig
      ✓ returns a flattened config object

  App - reducer
    ✓ sets the initial state
    showBackgroundImage action
      ✓ shows the background image
    hideBackgroundImage action
      ✓ hides the background image
    loadConfig action
      ✓ sets the state to loading
    configSuccess action
      ✓ sets the config in state
    configFailure action
      ✓ sets the error in state

  Auth - actions
    dispatching the perform required password reset action
      successful request
        ✓ calls the resetFunc
        ✓ dispatches the correct actions
      unsuccessful request
        ✓ calls the resetFunc
        ✓ dispatches the correct actions
    #updateUser
      ✓ calls the user update action

  Auth - reducer
    ✓ sets the initial state
    ✓ changes loading to true for the userLogin action
    loginUser action
      ✓ calls the api login endpoint
      ✓ returns the authenticated user
      ✓ sets the users auth token in local storage
      ✓ sets the api client bearerToken
      ✓ dispatches LOGIN_REQUEST and LOGIN_SUCCESS actions
    logoutUser action
      ✓ calls the api logout endpoint
      ✓ removes the users auth token from local storage
      ✓ clears the api client bearerToken
      ✓ dispatches LOGOUT_REQUEST and LOGOUT_SUCCESS actions
    perform required password reset
      ✓ updates state when request is dispatched
      ✓ updates state when request is successful
      ✓ updates state when request fails

  ForgotPasswordPage - reducer
    initial state
      ✓ sets the initial state
    clearForgotPasswordErrors
      ✓ resets the errors key to an empty object
    forgotPasswordRequestAction
      ✓ changes the loading state to true
    forgotPasswordSuccessAction
      ✓ changes the loading state to false and emailSent to true
    forgotPasswordErrorAction
      ✓ changes the loading state to false and sets the error state
    forgotPasswordAction
      ✓ dispatches the appropriate actions when successful
      ✓ dispatches the appropriate actions when unsuccessful

  ManageHostsPage - reducer
    ✓ sets the initial state
    #setDisplay
      ✓ sets the display in state
    #getStatusLabelCounts
      ✓ sets the loading boolean
      ✓ dispatches the correct actions when successful
      ✓ dispatches the correct actions when unsuccessful
      ✓ adds the label counts to state when successful
      ✓ adds errors to state when unsuccessful
    #silentGetStatusLabelCounts
      ✓ dispatches the correct actions when successful
      ✓ dispatches the correct actions when unsuccessful

  QueryPages - reducer
    ✓ sets the initial state
    selectOsqueryTable action
      ✓ sets the selectedOsqueryTable attribute
    setQueryText action
      ✓ sets the queryText attribute
    setSelectedTargets action
      ✓ sets the selectedTarges attribute
    setSelectedTargetsQuery action
      ✓ sets the selectedTarges attribute

  ResetPasswordPage - reducer
    initial state
      ✓ sets the initial state
    clearResetPasswordErrors
      ✓ changes the loading state to true
    resetPasswordRequest
      ✓ changes the loading state to true
    resetPasswordSuccess
      ✓ changes the loading state to false and errors to null
    resetPasswordError
      ✓ changes the loading state to false and sets the error state
    resetPassword
      ✓ dispatches the appropriate actions when successful
      ✓ dispatches the appropriate actions when unsuccessful

  reduxConfig - helpers
    #entitiesExceptID
      ✓ returns an empty object if all ids are deleted
      ✓ removes the object with the key of the specified id
    #formatErrorResponse
      ✓ converts the error response to an object for redux state

  reduxConfig
    dispatching the clear errors action
      ✓ sets the errors to an empty object
    dispatching the create action
      successful create call
        ✓ calls the createFunc
        ✓ dispatches the correct actions
        ✓ adds the returned user to state
      unsuccessful create call
        ✓ calls the createFunc
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 116): [object Object]
        ✓ dispatches the correct actions
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 118): [object Object]
        ✓ adds the returned errors to state
        unauthenticated error
          ✓ dispatches the LOGOUT_SUCCESS action
    dispatching the update action
      successful update call
        ✓ calls the updateFunc
        ✓ dispatches the correct actions
        ✓ adds the returned user to state
      unsuccessful update call
        unauthenticated error
          ✓ dispatches the LOGOUT_SUCCESS action
        unprocessable entitiy
          ✓ calls the updateFunc
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 122): [object Object]
          ✓ dispatches the correct actions
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 124): [object Object]
          ✓ adds the returned errors to state
    dispatching the destroy action
      successful destroy call
        ✓ calls the destroyFunc
        ✓ dispatches the correct actions
        ✓ removes the returned invite from state
      unsuccessful destroy call
        ✓ calls the createFunc
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 126): [object Object]
        ✓ dispatches the correct actions
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 128): [object Object]
        ✓ adds the returned errors to state
    dispatching the load action
      successful load call
        ✓ calls the loadFunc
        ✓ dispatches the correct actions
        ✓ adds the returned user to state
      unsuccessful load call
        ✓ calls the loadFunc
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 130): [object Object]
        ✓ dispatches the correct actions
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 132): [object Object]
        ✓ adds the returned errors to state
    dispatching the loadAll action
      successful load call
        ✓ calls the loadAllFunc
        ✓ dispatches the correct actions
        ✓ adds the returned user to state
      unsuccessful loadAll call
        ✓ calls the loadAllFunc
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 134): [object Object]
        ✓ dispatches the correct actions
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 136): [object Object]
        ✓ adds the returned errors to state
    dispatching the silentLoadAll action
      successful loadAll call
        ✓ calls the loadAllFunc
        ✓ dispatches the correct actions
      unsuccessful loadAll call
        ✓ calls the loadAllFunc
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 138): [object Object]
        ✓ dispatches the correct actions
(node:446) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 140): [object Object]

  campaign entity - helpers
    #destroyFunc
      ✓ returns the campaign
    #update
      ✓ appends query results to the campaign when the campaign has query results
      ✓ adds query results to the campaign when the campaign does not have query results
      ✓ updates totals on the campaign when the campaign has totals
      ✓ adds totals to the campaign when the campaign does not have totals

  Labels - actions
    #silentLoadAll
      successful request
        ✓ does not call the LOAD_REQUEST action
      unsuccessful request
        ✓ does not call the LOAD_REQUEST action

  targets - helpers
    #appendTargetTypeToTargets
      ✓ adds the target_type attribute

  Users - actions
    enableUser
      successful request
        ✓ calls the API
        ✓ dispatches the correct actions
      unsuccessful request
        ✓ calls the API
        ✓ dispatches the correct actions
    changePassword
      successful request
        ✓ calls the API
        ✓ dispatches the correct actions
      unsuccessful request
        ✓ calls the API
        ✓ dispatches the correct actions
    updateAdmin
      successful request
        ✓ calls the API
        ✓ dispatches the correct actions
      unsuccessful request
        ✓ calls the API
        ✓ dispatches the correct actions
    dispatching the require password reset action
      successful request
        ✓ calls the resetFunc
        ✓ dispatches the correct actions
      unsuccessful request
        ✓ calls the resetFunc
        ✓ dispatches the correct actions

  Users - reducer
    require password reset
      ✓ updates state when request is dispatched
      ✓ updates state when request is successful
      ✓ updates state when request fails

  Notifications - reducer
    ✓ Updates state with notification info when RENDER_FLASH is dispatched
    ✓ Updates state to hide notifications when HIDE_FLASH is dispatched
    ✓ Updates state to hide notifications during location change

  redirectLocation - reducer
    ✓ sets the initial state
    ✓ sets the redirect location in state
    ✓ clears the direction location in state

  convertToCSV - utility
    ✓ converts an array of objects to CSV format

  debounce - utility
    ✓ prevents double-clicks from executing a function multiple times

  deepDifference - utility
    ✓ returns the difference for 2 un-nested objects
    ✓ returns the difference for 2 nested objects
    ✓ returns the difference for 1 nested object and 1 non-nested object
    ✓ returns an empty array when comparing an empty array against a non-empty array

  filterArrayByHash
    ✓ filters the array to all objects that include the filter strings

  formatApiErrors
    ✓ formats errors for the Form HOC

  replaceArrayItem - utility
    ✓ substitutes the item in the array with its replacement

  531 passing (13s)
  11 failing

  1) ConfigOptionForm - form renders form fields for the config option name and value:
     TypeError: Argument is NaN
      at Object.conversions.unrestricted double (node_modules/webidl-conversions/lib/index.js:110:15)
      at HTMLDivElement.set [as scrollTop] (node_modules/jsdom/lib/jsdom/living/generated/Element.js:496:43)
      at componentDidUpdate (node_modules/react-select/lib/Select.js:262:23)
      at measureLifeCyclePerf (node_modules/react-dom/lib/ReactCompositeComponent.js:75:12)
      at node_modules/react-dom/lib/ReactCompositeComponent.js:729:11
      at CallbackQueue.notifyAll (node_modules/react-dom/lib/CallbackQueue.js:76:22)
      at ReactReconcileTransaction.close (node_modules/react-dom/lib/ReactReconcileTransaction.js:80:26)
      at ReactReconcileTransaction.closeAll (node_modules/react-dom/lib/Transaction.js:206:25)
      at ReactReconcileTransaction.perform (node_modules/react-dom/lib/Transaction.js:153:16)
      at ReactUpdatesFlushTransaction.perform (node_modules/react-dom/lib/Transaction.js:140:20)
      at ReactUpdatesFlushTransaction.perform (node_modules/react-dom/lib/ReactUpdates.js:89:32)
      at Object.flushBatchedUpdates (node_modules/react-dom/lib/ReactUpdates.js:172:19)
      at ReactDefaultBatchingStrategyTransaction.closeAll (node_modules/react-dom/lib/Transaction.js:206:25)
      at ReactDefaultBatchingStrategyTransaction.perform (node_modules/react-dom/lib/Transaction.js:153:16)
      at Object.batchedUpdates (node_modules/react-dom/lib/ReactDefaultBatchingStrategy.js:62:26)
      at Object.batchedUpdates (node_modules/react-dom/lib/ReactUpdates.js:97:27)
      at node_modules/react-dom/lib/ReactTestUtils.js:338:18
      at ReactWrapper.<anonymous> (node_modules/enzyme/build/ReactWrapper.js:776:11)
      at ReactWrapper.single (node_modules/enzyme/build/ReactWrapper.js:1421:25)
      at ReactWrapper.simulate (node_modules/enzyme/build/ReactWrapper.js:769:14)
      at fillInFormInput (frontend/test/helpers.jsx:12:25)
      at itBehavesLikeAFormDropdownElement (frontend/test/helpers.jsx:41:3)
      at Context.<anonymous> (frontend/components/forms/ConfigOptionsForm/ConfigOptionForm/ConfigOptionForm.tests.jsx:25:5)

  2) ConfigOptionForm - form calls the onChangeFunc prop when the form updates:
     TypeError: Argument is NaN
      at Object.conversions.unrestricted double (node_modules/webidl-conversions/lib/index.js:110:15)
      at HTMLDivElement.set [as scrollTop] (node_modules/jsdom/lib/jsdom/living/generated/Element.js:496:43)
      at componentDidUpdate (node_modules/react-select/lib/Select.js:262:23)
      at measureLifeCyclePerf (node_modules/react-dom/lib/ReactCompositeComponent.js:75:12)
      at node_modules/react-dom/lib/ReactCompositeComponent.js:729:11
      at CallbackQueue.notifyAll (node_modules/react-dom/lib/CallbackQueue.js:76:22)
      at ReactReconcileTransaction.close (node_modules/react-dom/lib/ReactReconcileTransaction.js:80:26)
      at ReactReconcileTransaction.closeAll (node_modules/react-dom/lib/Transaction.js:206:25)
      at ReactReconcileTransaction.perform (node_modules/react-dom/lib/Transaction.js:153:16)
      at ReactUpdatesFlushTransaction.perform (node_modules/react-dom/lib/Transaction.js:140:20)
      at ReactUpdatesFlushTransaction.perform (node_modules/react-dom/lib/ReactUpdates.js:89:32)
      at Object.flushBatchedUpdates (node_modules/react-dom/lib/ReactUpdates.js:172:19)
      at ReactDefaultBatchingStrategyTransaction.closeAll (node_modules/react-dom/lib/Transaction.js:206:25)
      at ReactDefaultBatchingStrategyTransaction.perform (node_modules/react-dom/lib/Transaction.js:153:16)
      at Object.batchedUpdates (node_modules/react-dom/lib/ReactDefaultBatchingStrategy.js:62:26)
      at Object.batchedUpdates (node_modules/react-dom/lib/ReactUpdates.js:97:27)
      at node_modules/react-dom/lib/ReactTestUtils.js:338:18
      at ReactWrapper.<anonymous> (node_modules/enzyme/build/ReactWrapper.js:776:11)
      at ReactWrapper.single (node_modules/enzyme/build/ReactWrapper.js:1421:25)
      at ReactWrapper.simulate (node_modules/enzyme/build/ReactWrapper.js:769:14)
      at fillInFormInput (frontend/test/helpers.jsx:12:25)
      at itBehavesLikeAFormDropdownElement (frontend/test/helpers.jsx:41:3)
      at Context.<anonymous> (frontend/components/forms/ConfigOptionsForm/ConfigOptionForm/ConfigOptionForm.tests.jsx:42:5)

  3) ConfigurePackQueryForm - component form fields updates form state:
     TypeError: Argument is NaN
      at Object.conversions.unrestricted double (node_modules/webidl-conversions/lib/index.js:110:15)
      at HTMLDivElement.set [as scrollTop] (node_modules/jsdom/lib/jsdom/living/generated/Element.js:496:43)
      at componentDidUpdate (node_modules/react-select/lib/Select.js:262:23)
      at measureLifeCyclePerf (node_modules/react-dom/lib/ReactCompositeComponent.js:75:12)
      at node_modules/react-dom/lib/ReactCompositeComponent.js:729:11
      at CallbackQueue.notifyAll (node_modules/react-dom/lib/CallbackQueue.js:76:22)
      at ReactReconcileTransaction.close (node_modules/react-dom/lib/ReactReconcileTransaction.js:80:26)
      at ReactReconcileTransaction.closeAll (node_modules/react-dom/lib/Transaction.js:206:25)
      at ReactReconcileTransaction.perform (node_modules/react-dom/lib/Transaction.js:153:16)
      at ReactUpdatesFlushTransaction.perform (node_modules/react-dom/lib/Transaction.js:140:20)
      at ReactUpdatesFlushTransaction.perform (node_modules/react-dom/lib/ReactUpdates.js:89:32)
      at Object.flushBatchedUpdates (node_modules/react-dom/lib/ReactUpdates.js:172:19)
      at ReactDefaultBatchingStrategyTransaction.closeAll (node_modules/react-dom/lib/Transaction.js:206:25)
      at ReactDefaultBatchingStrategyTransaction.perform (node_modules/react-dom/lib/Transaction.js:153:16)
      at Object.batchedUpdates (node_modules/react-dom/lib/ReactDefaultBatchingStrategy.js:62:26)
      at Object.batchedUpdates (node_modules/react-dom/lib/ReactUpdates.js:97:27)
      at node_modules/react-dom/lib/ReactTestUtils.js:338:18
      at ReactWrapper.<anonymous> (node_modules/enzyme/build/ReactWrapper.js:776:11)
      at ReactWrapper.single (node_modules/enzyme/build/ReactWrapper.js:1421:25)
      at ReactWrapper.simulate (node_modules/enzyme/build/ReactWrapper.js:769:14)
      at fillInFormInput (frontend/test/helpers.jsx:12:25)
      at itBehavesLikeAFormDropdownElement (frontend/test/helpers.jsx:41:3)
      at Context.<anonymous> (frontend/components/forms/ConfigurePackQueryForm/ConfigurePackQueryForm.tests.jsx:21:7)

  4) ConfigurePackQueryForm - component submitting the form submits the form with the form data:
     TypeError: Argument is NaN
      at Object.conversions.unrestricted double (node_modules/webidl-conversions/lib/index.js:110:15)
      at HTMLDivElement.set [as scrollTop] (node_modules/jsdom/lib/jsdom/living/generated/Element.js:496:43)
      at componentDidUpdate (node_modules/react-select/lib/Select.js:262:23)
      at measureLifeCyclePerf (node_modules/react-dom/lib/ReactCompositeComponent.js:75:12)
      at node_modules/react-dom/lib/ReactCompositeComponent.js:729:11
      at CallbackQueue.notifyAll (node_modules/react-dom/lib/CallbackQueue.js:76:22)
      at ReactReconcileTransaction.close (node_modules/react-dom/lib/ReactReconcileTransaction.js:80:26)
      at ReactReconcileTransaction.closeAll (node_modules/react-dom/lib/Transaction.js:206:25)
      at ReactReconcileTransaction.perform (node_modules/react-dom/lib/Transaction.js:153:16)
      at ReactUpdatesFlushTransaction.perform (node_modules/react-dom/lib/Transaction.js:140:20)
      at ReactUpdatesFlushTransaction.perform (node_modules/react-dom/lib/ReactUpdates.js:89:32)
      at Object.flushBatchedUpdates (node_modules/react-dom/lib/ReactUpdates.js:172:19)
      at ReactDefaultBatchingStrategyTransaction.closeAll (node_modules/react-dom/lib/Transaction.js:206:25)
      at ReactDefaultBatchingStrategyTransaction.perform (node_modules/react-dom/lib/Transaction.js:153:16)
      at Object.batchedUpdates (node_modules/react-dom/lib/ReactDefaultBatchingStrategy.js:62:26)
      at Object.batchedUpdates (node_modules/react-dom/lib/ReactUpdates.js:97:27)
      at node_modules/react-dom/lib/ReactTestUtils.js:338:18
      at ReactWrapper.<anonymous> (node_modules/enzyme/build/ReactWrapper.js:776:11)
      at ReactWrapper.single (node_modules/enzyme/build/ReactWrapper.js:1421:25)
      at ReactWrapper.simulate (node_modules/enzyme/build/ReactWrapper.js:769:14)
      at fillInFormInput (frontend/test/helpers.jsx:12:25)
      at itBehavesLikeAFormDropdownElement (frontend/test/helpers.jsx:41:3)
      at Context.<anonymous> (frontend/components/forms/ConfigurePackQueryForm/ConfigurePackQueryForm.tests.jsx:39:7)

  5) Dropdown - component selects a value from dropdown:
     TypeError: Argument is NaN
      at Object.conversions.unrestricted double (node_modules/webidl-conversions/lib/index.js:110:15)
      at HTMLDivElement.set [as scrollTop] (node_modules/jsdom/lib/jsdom/living/generated/Element.js:496:43)
      at componentDidUpdate (node_modules/react-select/lib/Select.js:262:23)
      at measureLifeCyclePerf (node_modules/react-dom/lib/ReactCompositeComponent.js:75:12)
      at node_modules/react-dom/lib/ReactCompositeComponent.js:729:11
      at CallbackQueue.notifyAll (node_modules/react-dom/lib/CallbackQueue.js:76:22)
      at ReactReconcileTransaction.close (node_modules/react-dom/lib/ReactReconcileTransaction.js:80:26)
      at ReactReconcileTransaction.closeAll (node_modules/react-dom/lib/Transaction.js:206:25)
      at ReactReconcileTransaction.perform (node_modules/react-dom/lib/Transaction.js:153:16)
      at ReactUpdatesFlushTransaction.perform (node_modules/react-dom/lib/Transaction.js:140:20)
      at ReactUpdatesFlushTransaction.perform (node_modules/react-dom/lib/ReactUpdates.js:89:32)
      at Object.flushBatchedUpdates (node_modules/react-dom/lib/ReactUpdates.js:172:19)
      at ReactDefaultBatchingStrategyTransaction.closeAll (node_modules/react-dom/lib/Transaction.js:206:25)
      at ReactDefaultBatchingStrategyTransaction.perform (node_modules/react-dom/lib/Transaction.js:153:16)
      at Object.batchedUpdates (node_modules/react-dom/lib/ReactDefaultBatchingStrategy.js:62:26)
      at Object.batchedUpdates (node_modules/react-dom/lib/ReactUpdates.js:97:27)
      at node_modules/react-dom/lib/ReactTestUtils.js:338:18
      at ReactWrapper.<anonymous> (node_modules/enzyme/build/ReactWrapper.js:776:11)
      at ReactWrapper.single (node_modules/enzyme/build/ReactWrapper.js:1421:25)
      at ReactWrapper.simulate (node_modules/enzyme/build/ReactWrapper.js:769:14)
      at fillInFormInput (frontend/test/helpers.jsx:12:25)
      at Context.<anonymous> (frontend/components/forms/fields/Dropdown/Dropdown.tests.jsx:33:5)

  6) UserBlock - component calls the onToggleEditUser prop with the user when Modify Details is selected:
     TypeError: Argument is NaN
      at Object.conversions.unrestricted double (node_modules/webidl-conversions/lib/index.js:110:15)
      at HTMLDivElement.set [as scrollTop] (node_modules/jsdom/lib/jsdom/living/generated/Element.js:496:43)
      at componentDidUpdate (node_modules/react-select/lib/Select.js:262:23)
      at measureLifeCyclePerf (node_modules/react-dom/lib/ReactCompositeComponent.js:75:12)
      at node_modules/react-dom/lib/ReactCompositeComponent.js:729:11
      at CallbackQueue.notifyAll (node_modules/react-dom/lib/CallbackQueue.js:76:22)
      at ReactReconcileTransaction.close (node_modules/react-dom/lib/ReactReconcileTransaction.js:80:26)
      at ReactReconcileTransaction.closeAll (node_modules/react-dom/lib/Transaction.js:206:25)
      at ReactReconcileTransaction.perform (node_modules/react-dom/lib/Transaction.js:153:16)
      at ReactUpdatesFlushTransaction.perform (node_modules/react-dom/lib/Transaction.js:140:20)
      at ReactUpdatesFlushTransaction.perform (node_modules/react-dom/lib/ReactUpdates.js:89:32)
      at Object.flushBatchedUpdates (node_modules/react-dom/lib/ReactUpdates.js:172:19)
      at ReactDefaultBatchingStrategyTransaction.closeAll (node_modules/react-dom/lib/Transaction.js:206:25)
      at ReactDefaultBatchingStrategyTransaction.perform (node_modules/react-dom/lib/Transaction.js:153:16)
      at Object.batchedUpdates (node_modules/react-dom/lib/ReactDefaultBatchingStrategy.js:62:26)
      at Object.batchedUpdates (node_modules/react-dom/lib/ReactUpdates.js:97:27)
      at node_modules/react-dom/lib/ReactTestUtils.js:338:18
      at ReactWrapper.<anonymous> (node_modules/enzyme/build/ReactWrapper.js:776:11)
      at ReactWrapper.single (node_modules/enzyme/build/ReactWrapper.js:1421:25)
      at ReactWrapper.simulate (node_modules/enzyme/build/ReactWrapper.js:769:14)
      at fillInFormInput (frontend/test/helpers.jsx:12:25)
      at Context.<anonymous> (frontend/components/UserBlock/UserBlock.tests.jsx:45:5)

  7) UserBlock - component calls the onSelect prop with the user when Promote User is selected:
     TypeError: Argument is NaN
      at Object.conversions.unrestricted double (node_modules/webidl-conversions/lib/index.js:110:15)
      at HTMLDivElement.set [as scrollTop] (node_modules/jsdom/lib/jsdom/living/generated/Element.js:496:43)
      at componentDidUpdate (node_modules/react-select/lib/Select.js:262:23)
      at measureLifeCyclePerf (node_modules/react-dom/lib/ReactCompositeComponent.js:75:12)
      at node_modules/react-dom/lib/ReactCompositeComponent.js:729:11
      at CallbackQueue.notifyAll (node_modules/react-dom/lib/CallbackQueue.js:76:22)
      at ReactReconcileTransaction.close (node_modules/react-dom/lib/ReactReconcileTransaction.js:80:26)
      at ReactReconcileTransaction.closeAll (node_modules/react-dom/lib/Transaction.js:206:25)
      at ReactReconcileTransaction.perform (node_modules/react-dom/lib/Transaction.js:153:16)
      at ReactUpdatesFlushTransaction.perform (node_modules/react-dom/lib/Transaction.js:140:20)
      at ReactUpdatesFlushTransaction.perform (node_modules/react-dom/lib/ReactUpdates.js:89:32)
      at Object.flushBatchedUpdates (node_modules/react-dom/lib/ReactUpdates.js:172:19)
      at ReactDefaultBatchingStrategyTransaction.closeAll (node_modules/react-dom/lib/Transaction.js:206:25)
      at ReactDefaultBatchingStrategyTransaction.perform (node_modules/react-dom/lib/Transaction.js:153:16)
      at Object.batchedUpdates (node_modules/react-dom/lib/ReactDefaultBatchingStrategy.js:62:26)
      at Object.batchedUpdates (node_modules/react-dom/lib/ReactUpdates.js:97:27)
      at node_modules/react-dom/lib/ReactTestUtils.js:338:18
      at ReactWrapper.<anonymous> (node_modules/enzyme/build/ReactWrapper.js:776:11)
      at ReactWrapper.single (node_modules/enzyme/build/ReactWrapper.js:1421:25)
      at ReactWrapper.simulate (node_modules/enzyme/build/ReactWrapper.js:769:14)
      at fillInFormInput (frontend/test/helpers.jsx:12:25)
      at Context.<anonymous> (frontend/components/UserBlock/UserBlock.tests.jsx:59:5)

  8) UserBlock - component calls the onSelect prop with the user when Demote User is selected:
     TypeError: Argument is NaN
      at Object.conversions.unrestricted double (node_modules/webidl-conversions/lib/index.js:110:15)
      at HTMLDivElement.set [as scrollTop] (node_modules/jsdom/lib/jsdom/living/generated/Element.js:496:43)
      at componentDidUpdate (node_modules/react-select/lib/Select.js:262:23)
      at measureLifeCyclePerf (node_modules/react-dom/lib/ReactCompositeComponent.js:75:12)
      at node_modules/react-dom/lib/ReactCompositeComponent.js:729:11
      at CallbackQueue.notifyAll (node_modules/react-dom/lib/CallbackQueue.js:76:22)
      at ReactReconcileTransaction.close (node_modules/react-dom/lib/ReactReconcileTransaction.js:80:26)
      at ReactReconcileTransaction.closeAll (node_modules/react-dom/lib/Transaction.js:206:25)
      at ReactReconcileTransaction.perform (node_modules/react-dom/lib/Transaction.js:153:16)
      at ReactUpdatesFlushTransaction.perform (node_modules/react-dom/lib/Transaction.js:140:20)
      at ReactUpdatesFlushTransaction.perform (node_modules/react-dom/lib/ReactUpdates.js:89:32)
      at Object.flushBatchedUpdates (node_modules/react-dom/lib/ReactUpdates.js:172:19)
      at ReactDefaultBatchingStrategyTransaction.closeAll (node_modules/react-dom/lib/Transaction.js:206:25)
      at ReactDefaultBatchingStrategyTransaction.perform (node_modules/react-dom/lib/Transaction.js:153:16)
      at Object.batchedUpdates (node_modules/react-dom/lib/ReactDefaultBatchingStrategy.js:62:26)
      at Object.batchedUpdates (node_modules/react-dom/lib/ReactUpdates.js:97:27)
      at node_modules/react-dom/lib/ReactTestUtils.js:338:18
      at ReactWrapper.<anonymous> (node_modules/enzyme/build/ReactWrapper.js:776:11)
      at ReactWrapper.single (node_modules/enzyme/build/ReactWrapper.js:1421:25)
      at ReactWrapper.simulate (node_modules/enzyme/build/ReactWrapper.js:769:14)
      at fillInFormInput (frontend/test/helpers.jsx:12:25)
      at Context.<anonymous> (frontend/components/UserBlock/UserBlock.tests.jsx:74:5)

  9) UserBlock - component calls the onSelect prop with the user when Disable Account is selected:
     TypeError: Argument is NaN
      at Object.conversions.unrestricted double (node_modules/webidl-conversions/lib/index.js:110:15)
      at HTMLDivElement.set [as scrollTop] (node_modules/jsdom/lib/jsdom/living/generated/Element.js:496:43)
      at componentDidUpdate (node_modules/react-select/lib/Select.js:262:23)
      at measureLifeCyclePerf (node_modules/react-dom/lib/ReactCompositeComponent.js:75:12)
      at node_modules/react-dom/lib/ReactCompositeComponent.js:729:11
      at CallbackQueue.notifyAll (node_modules/react-dom/lib/CallbackQueue.js:76:22)
      at ReactReconcileTransaction.close (node_modules/react-dom/lib/ReactReconcileTransaction.js:80:26)
      at ReactReconcileTransaction.closeAll (node_modules/react-dom/lib/Transaction.js:206:25)
      at ReactReconcileTransaction.perform (node_modules/react-dom/lib/Transaction.js:153:16)
      at ReactUpdatesFlushTransaction.perform (node_modules/react-dom/lib/Transaction.js:140:20)
      at ReactUpdatesFlushTransaction.perform (node_modules/react-dom/lib/ReactUpdates.js:89:32)
      at Object.flushBatchedUpdates (node_modules/react-dom/lib/ReactUpdates.js:172:19)
      at ReactDefaultBatchingStrategyTransaction.closeAll (node_modules/react-dom/lib/Transaction.js:206:25)
      at ReactDefaultBatchingStrategyTransaction.perform (node_modules/react-dom/lib/Transaction.js:153:16)
      at Object.batchedUpdates (node_modules/react-dom/lib/ReactDefaultBatchingStrategy.js:62:26)
      at Object.batchedUpdates (node_modules/react-dom/lib/ReactUpdates.js:97:27)
      at node_modules/react-dom/lib/ReactTestUtils.js:338:18
      at ReactWrapper.<anonymous> (node_modules/enzyme/build/ReactWrapper.js:776:11)
      at ReactWrapper.single (node_modules/enzyme/build/ReactWrapper.js:1421:25)
      at ReactWrapper.simulate (node_modules/enzyme/build/ReactWrapper.js:769:14)
      at fillInFormInput (frontend/test/helpers.jsx:12:25)
      at Context.<anonymous> (frontend/components/UserBlock/UserBlock.tests.jsx:88:5)

  10) UserBlock - component calls the onSelect prop with the user when Enable Account is selected:
     TypeError: Argument is NaN
      at Object.conversions.unrestricted double (node_modules/webidl-conversions/lib/index.js:110:15)
      at HTMLDivElement.set [as scrollTop] (node_modules/jsdom/lib/jsdom/living/generated/Element.js:496:43)
      at componentDidUpdate (node_modules/react-select/lib/Select.js:262:23)
      at measureLifeCyclePerf (node_modules/react-dom/lib/ReactCompositeComponent.js:75:12)
      at node_modules/react-dom/lib/ReactCompositeComponent.js:729:11
      at CallbackQueue.notifyAll (node_modules/react-dom/lib/CallbackQueue.js:76:22)
      at ReactReconcileTransaction.close (node_modules/react-dom/lib/ReactReconcileTransaction.js:80:26)
      at ReactReconcileTransaction.closeAll (node_modules/react-dom/lib/Transaction.js:206:25)
      at ReactReconcileTransaction.perform (node_modules/react-dom/lib/Transaction.js:153:16)
      at ReactUpdatesFlushTransaction.perform (node_modules/react-dom/lib/Transaction.js:140:20)
      at ReactUpdatesFlushTransaction.perform (node_modules/react-dom/lib/ReactUpdates.js:89:32)
      at Object.flushBatchedUpdates (node_modules/react-dom/lib/ReactUpdates.js:172:19)
      at ReactDefaultBatchingStrategyTransaction.closeAll (node_modules/react-dom/lib/Transaction.js:206:25)
      at ReactDefaultBatchingStrategyTransaction.perform (node_modules/react-dom/lib/Transaction.js:153:16)
      at Object.batchedUpdates (node_modules/react-dom/lib/ReactDefaultBatchingStrategy.js:62:26)
      at Object.batchedUpdates (node_modules/react-dom/lib/ReactUpdates.js:97:27)
      at node_modules/react-dom/lib/ReactTestUtils.js:338:18
      at ReactWrapper.<anonymous> (node_modules/enzyme/build/ReactWrapper.js:776:11)
      at ReactWrapper.single (node_modules/enzyme/build/ReactWrapper.js:1421:25)
      at ReactWrapper.simulate (node_modules/enzyme/build/ReactWrapper.js:769:14)
      at fillInFormInput (frontend/test/helpers.jsx:12:25)
      at Context.<anonymous> (frontend/components/UserBlock/UserBlock.tests.jsx:103:5)

  11) UserBlock - component calls the onSelect prop with the user when Require Password Reset is selected:
     TypeError: Argument is NaN
      at Object.conversions.unrestricted double (node_modules/webidl-conversions/lib/index.js:110:15)
      at HTMLDivElement.set [as scrollTop] (node_modules/jsdom/lib/jsdom/living/generated/Element.js:496:43)
      at componentDidUpdate (node_modules/react-select/lib/Select.js:262:23)
      at measureLifeCyclePerf (node_modules/react-dom/lib/ReactCompositeComponent.js:75:12)
      at node_modules/react-dom/lib/ReactCompositeComponent.js:729:11
      at CallbackQueue.notifyAll (node_modules/react-dom/lib/CallbackQueue.js:76:22)
      at ReactReconcileTransaction.close (node_modules/react-dom/lib/ReactReconcileTransaction.js:80:26)
      at ReactReconcileTransaction.closeAll (node_modules/react-dom/lib/Transaction.js:206:25)
      at ReactReconcileTransaction.perform (node_modules/react-dom/lib/Transaction.js:153:16)
      at ReactUpdatesFlushTransaction.perform (node_modules/react-dom/lib/Transaction.js:140:20)
      at ReactUpdatesFlushTransaction.perform (node_modules/react-dom/lib/ReactUpdates.js:89:32)
      at Object.flushBatchedUpdates (node_modules/react-dom/lib/ReactUpdates.js:172:19)
      at ReactDefaultBatchingStrategyTransaction.closeAll (node_modules/react-dom/lib/Transaction.js:206:25)
      at ReactDefaultBatchingStrategyTransaction.perform (node_modules/react-dom/lib/Transaction.js:153:16)
      at Object.batchedUpdates (node_modules/react-dom/lib/ReactDefaultBatchingStrategy.js:62:26)
      at Object.batchedUpdates (node_modules/react-dom/lib/ReactUpdates.js:97:27)
      at node_modules/react-dom/lib/ReactTestUtils.js:338:18
      at ReactWrapper.<anonymous> (node_modules/enzyme/build/ReactWrapper.js:776:11)
      at ReactWrapper.single (node_modules/enzyme/build/ReactWrapper.js:1421:25)
      at ReactWrapper.simulate (node_modules/enzyme/build/ReactWrapper.js:769:14)
      at fillInFormInput (frontend/test/helpers.jsx:12:25)
      at Context.<anonymous> (frontend/components/UserBlock/UserBlock.tests.jsx:117:5)

make: *** [Makefile:118: test-js] Error 11
zwass commented 7 years ago

I can repro this locally if I rm -rf node_modules && make deps && make test-js