Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Error: spawn growlnotify ENOENT #3088

Closed
4 tasks done
cssagogo opened this issue Oct 31, 2017 · 13 comments
Closed
4 tasks done

Error: spawn growlnotify ENOENT #3088

cssagogo opened this issue Oct 31, 2017 · 13 comments
Labels
area: integrations related to working with 3rd party software (e.g., babel, typescript)

Comments

@cssagogo
Copy link

Prerequisites

  • Checked that your issue isn't already filed by cross referencing issues with the common mistake label
  • Checked next-gen ES issues and syntax problems by using the same environment and/or transpiler configuration without Mocha to ensure it isn't just a feature that actually isn't supported in the environment in question or a bug in your code.
  • 'Smoke tested' the code to be tested by running it outside the real test suite to get a better sense of whether the problem is in the code under test, your usage of Mocha, or Mocha itself
  • Ensured that there is no discrepancy between the locally and globally installed versions of Mocha. You can find them with:
    node node_modules/.bin/mocha --version(Local) and mocha --version(Global). We recommend avoiding the use of globally installed Mocha.

Description

I'm unclear if its the same problem discussed here, but having problems running mocha for a newly created project on my mac...

#3067

For the following project...

https://github.com/cssagogo/pikadeck

When I try running the grunt task, I get the following error...

Running "mocha:test" (mocha) task
>> 0 passed! (0.00s)
An error occured. { Error: spawn growlnotify ENOENT
  at _errnoException (util.js:1024:11)
  at Process.ChildProcess._handle.onexit (internal/child_process.js:192:19)
  at onErrorNT (internal/child_process.js:374:16)
  at _combinedTickCallback (internal/process/next_tick.js:138:11)
  at process._tickCallback (internal/process/next_tick.js:180:9)

  code: 'ENOENT',
  errno: 'ENOENT',
  syscall: 'spawn growlnotify',
  path: 'growlnotify',
  spawnargs: 
   [ '--image',
     '/Users/adamyoungers/projects/pikadeck/node_modules/grunt-mocha/growl/ok.png',
     '-m',
     '0 passed! (0.00s)',
     '0 passed! (0.00s)' ] }

Done.

Process finished with exit code 0

Steps to Reproduce

  1. Install project
  2. Run grunt test_js task

Expected behavior: Tests to pass

Actual behavior: Get error above

Reproduces how often: Always

Versions

mocha --version: bash: mocha: command not found
node node_modules/.bin/mocha --version: 4.0.1
node --version: v8.8.0
OS: macOS Sierra 10.12.6
grunt-mocha: ^1.0.4

@jlchereau
Copy link

On Windows 10 with node 8.9.0, npm-mocha 1.0.4 and mocha 4.0.1

>> 78 passed! (9.97s)
An error occured. { Error: spawn growlnotify ENOENT
    at _errnoException (util.js:1024:11)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:190:19)
    at onErrorNT (internal/child_process.js:372:16)
    at _combinedTickCallback (internal/process/next_tick.js:138:11)
    at process._tickDomainCallback (internal/process/next_tick.js:218:9)
  code: 'ENOENT',
  errno: 'ENOENT',
  syscall: 'spawn growlnotify',
  path: 'growlnotify',
  spawnargs:
   [ '/i:D:\\WebStorm\\Kidoju\\Kidoju.Mobile\\node_modules\\grunt-mocha\\growl\\ok.png',
     '78 passed! (9.97s)',
     '/t:78 passed! (9.97s)' ] }

@cssagogo
Copy link
Author

cssagogo commented Nov 3, 2017

I updated to node v9.0.0 and npm v5.5.1 and I'm no longer getting this error, but instead a new one. Here is what I have configured in grunt...

        mocha: {
            test2: {
                options: {
                    urls: ['test/index.html'],
                    dest: 'test/index.out',
                    run: true,
                    log: true,
                    reporter: 'Spec',
                    timeout: 10000
                }
            }
        },

And the new error is documented here...

#3090

@cssagogo
Copy link
Author

cssagogo commented Nov 3, 2017

And I spoke to soon. When the test passes I get the original error...

Running "mocha:test2" (mocha) task
Testing: test/index.html


  unitTest.init()
    ✓ Sample Unit test 1

  unitTest.pdf().init()
    ✓ Sample Unit test 2


  2 passing (2ms)

An error occured. { Error: spawn growlnotify ENOENT
>> 2 passed! (0.00s)
  at _errnoException (util.js:1031:13)
  at Process.ChildProcess._handle.onexit (internal/child_process.js:201:19)

Running "clean:css" (clean) task
  at onErrorNT (internal/child_process.js:389:16)
>> 0 paths cleaned.
  at _combinedTickCallback (internal/process/next_tick.js:138:11)
  at process._tickCallback (internal/process/next_tick.js:180:9)


  errno: 'ENOENT',
  code: 'ENOENT',
Running "sass:dev" (sass) task
  syscall: 'spawn growlnotify',
  path: 'growlnotify',
  spawnargs: 
   [ '--image',
     '/Users/adamyoungers/projects/pikadeck/node_modules/grunt-mocha/growl/ok.png',
     '-m',
     '2 passed! (0.00s)',
     '2 passed! (0.00s)' ] }

@mirague
Copy link

mirague commented Nov 13, 2017

Seeing this as well, had to disable the --growl flag until this is fixed.

@ScottFreeCode
Copy link
Contributor

Per #3067 (comment), can anyone confirm whether the issue is or is not resolved by installing the respective prerequisite Growl/notify library for their OS?

@toblerpwn
Copy link

I can confirm that this works for me.

Ironically, growl was never working; only in Mocha 4 did it expose an error (before that it must have been a silent failure). Running this fixed the problem for me:

sudo gem install terminal-notifier

Although I also needed to add the --exit param to my mocha.opts file. This also only became required in Mocha 4.

(The issues are unrelated except that as of Mocha 4, they both exhibited new issues at the conclusion of tests.)

@bertrandmartel
Copy link

As suggested by @mirague, disabling growl in grunt with growlOnSuccess: false fix this :

mocha: {
    all: {
        src: ['tests/testrunner.html']
    },
    options: {
        run: true,
        growlOnSuccess: false
    }
}

@ScottFreeCode
Copy link
Contributor

Does Grunt's growlOnSuccess option for Mocha default to true? If so, we should file a bug report for Grunt to have it default to false -- at least when Growl isn't installed (if need be, it could load the Growl Node library Mocha uses and try using it, try-catching to detect the error and changing the default to false in that case).

@boneskull
Copy link
Contributor

OK, so this isn't a Mocha problem per se; see #3111 instead.

stennie added a commit to stennie/keystone that referenced this issue Jun 29, 2018
stennie added a commit to keystonejs/keystone-classic that referenced this issue Jun 29, 2018
@plroebuck
Copy link
Contributor

It's not Grunt's flag. growlOnSuccess and growlOnFailure are options for the grunt-mocha Grunt task. This package is using Mocha programmatically, but the ENOENT errors are coming from the Grunt task itself (not Mocha).

ghbolivar added a commit to ghbolivar/keystone that referenced this issue Feb 24, 2019
* Playing with Travic CI build

* Playing with Travic CI build

* Fix attempt for issue keystonejs#3979

packages.js generates a Uncaught SyntaxError: Unexpected string when minified, and fails to load the admin interface.
After some digging I found that uglifyjs compresses the typeof checks into the following format "undefined"==typeof x which triggers a syntax error after passing through another minification process when deployed.

A way to prevent this from happening is to allow semicolons in the uglifyjs command.
Also needed to add the 'aphrodite/no-important' to the required packages for the Admin UI.

* Updating contact info

* Correcting password type check in PasswordType

* fix:typo in handleError in screens/Item/index.js

* fix:module-name in import statement in EditForm.js

It was working before but the `./` was extraneous and redundant.

* Fix: model with required field that defaults to 0 can't be saved

Number.prototype.validateRequiredInput() merely checked if the getter
for the field returned a truthy value. That fails if the default happens
to be zero (which is a falsy value).

The fix is to simply check if the return value is a number.

* Fix: model with required field that defaults to false can't be saved

Boolean variant of commit d28bacc.

* Commenting out redundant code in www dir

* Removing `path` from server/initViewEngine

* Removing commented out PropTypes import

* Removing redundant import

* [WIP] Updating packages (only minors and patches)

* [WIP] Updating more packages (minor & patch)

* Updating last of the minor and patch packages

* Removing old aphropdite references

* Fixing some "Prop types declarations should be sorted alphabetically" (react/sort-prop-types) errors, allowing `npm run lint` to run

* Changes to the few dependencies that were depending on [email protected]:

- knox has been replaced with keystonejs/knox as the package is not being maintained anymore and has a `*` for `mime`
- [email protected] uses [email protected] (which is compatible with node <=6.x)

* Fixing CSRF by reverting the (well meaning) changes made in PR 3756 (keystonejs/keystone#3756). I don't know if this will resurface issue 3420 (keystonejs/keystone#3420), which the PR apparently addressed.

* Add some functionality to prevent macro injection via CSV export

* Fixing file extention

* extract password validation so users can access the validation within their own code for things like password reset

* Correcting password type check in PasswordType

* Expanding password field configuration options and improving defaults (to align with current NIST guidelines). Updating, expanding on and clarifying relevant docs.

* Escaping values in the raw value of markdown field so it can be safely displayed within an HTML document

* Sanitization update to markdown fields -- remove unsafe html tags from the markdown value before it's rendered into html

* Updating the markdown fieldtype docs to include the new sanitizer options

* Prep'ing for release as 4.0.0-beta.6

* Fixed  in Adapters.FS

* nerfed strongly worded comment

* Updating packages

* v4.0.0-beta.7

* Documentation about customizing the navigation bar

* Add packages.js build

* Fix Password `validateInput` breaking tests related to security updates

* Revert "Merge branch 'jm-fork' into master"

This reverts commit 8008781, reversing
changes made to f08baa4.

* (feat) implements image thumbnails for the File type

* moved thumb check to field level

* Fix for known security vulnerability in marked 0.3.6 dependency

* updating packages

* v4.0.0-beta.8

* Fix autocleanup for cloudinary fixes 3476 (keystonejs#4205)

* Update `cloudinaryimage` to respect autocleanup

* Fixes autocleanup for cloudinaryimages

* Remove completed TODOs

* Deprecate currency setting (keystonejs#4132)

* fix paginate to return on count error (keystonejs#4167)

* Update README.md (keystonejs#4569)

Add field type Code (http://keystonejs.com/docs/database/#fieldtypes-code)

* Should check undefined instead, otherwise value === 0 will not be able to show (keystonejs#4524)

* Update application-updates.md (keystonejs#4582)

* Update yo-generator.md (keystonejs#4581)

* Update Readme.md (keystonejs#4583)

* replace hardcode keystone to path admin variable (keystonejs#4586)

* replace knox git dependency with knox-s3 (keystonejs#4574)

- knox-s3 is a fork of knox with one difference: a mime 1.x dependency that avoids breaking changes in mime 2.x
- this matches the `keystonejs/knox` repo, but is published to npm
- allows keystone to be installed without git e.g. in a node:slim Docker container

close keystonejs#4573

* Upgrade moment for CVE-2017-18214 (keystonejs#4592)

For more info, see: https://nvd.nist.gov/vuln/detail/CVE-2017-18214

This is currently triggering github security alerts on all projects using keystone 4.x

* Fix website (keystonejs#4615)

* Update website to work

* fixing one test at a time

Signed-off-by: Dominik Wilkowski <[email protected]>

* fixed keystonejs#4628

Signed-off-by: Dominik Wilkowski <[email protected]>

* fixing some typos and unnessesary comments

Signed-off-by: Dominik Wilkowski <[email protected]>

* removed commented out tests as there are not meaningful

Signed-off-by: Dominik Wilkowski <[email protected]>

* fixing admin ui tests (thanks to Vito)

Signed-off-by: Dominik Wilkowski <[email protected]>

* Fix test failure due to password complexity requirement added in 8ecb809

* Fix the wrong link to typography

* Added the typopgrahy plugin into gatsby-config

* Update typography to latest version

* Fix typo in @keystonejs and change GitHub link to https

* Remove failing tests as discussed with @JedWatson and @dominikwilkowski

* Keystone 4 website clean up and fixing stuff

* Home page clean up, inclulding Header redesign
* Doc page clean up, refactor the navigation
* Mobile optimisations
* A lot of minor polishes

* Replace window.location.pathname with this.props.location.pathname

* Add React Helmet

* Add Twitter Butotn

* Mobile optimsations

* Linting warning fix

* Adding in the missing DayPicker-WeekdaysRow (keystonejs#4601)

* Adding in the missing DayPicker-WeekdaysRow

* Fix keystonejs#4652: Remove EOL Node releases from Travis testing

* show color swatch on color field

Fixes issue: keystonejs/keystone#4074

* Fix keystonejs#4665: Update Readme for Keystone 4.0.0-rc0

* Fix missing bullets and tweak per feedback from Jed

* Fix bullets & update RC title

* Fix Relationship Fields link

* Fix for empty relationships submitting no value

* Fix for updating single relationship values

* updating packages bundle

Signed-off-by: Dominik Wilkowski <[email protected]>

* Remove link to `keystone-starter` (currently a v0.3 demo that doesn't cleanly deploy to Heroku)

* Add mention of new File API and link to Contributor Guide

* Reorganise README sections and add Table of Contents

* Move field type overview to documentation

* Move dev & testing information to Contributor Guide

* Change Netlify doc links to https

* Change Thinkmill link to https

* Consolidate the Contributing blurb

* Update GitHub issue/PR templates

* Tidy home page text & link to current release information

* Fix keystonejs#4686: CloudinaryImage(s) fields were incorrectly marked as deprecated (keystonejs#4690)

* Update deps according to semver

* Remove --growl from Mocha options; fails on Mocha 4+ unless `growl-notify` is installed
(ref: mochajs/mocha#3088)

* Update to latest browserify

* Upgrade `debug` dependency

* Fix bug in Safari where XHR form submission fails with empty file input (keystonejs#4673)

* Provides a fix for a bug in Safari where XHR form submission fails when input[type=file] is empty

* Include keystone.version in startup message (keystonejs#4692)

* Remove unused title markdown from README.md

* updated packages bundle

Signed-off-by: Dominik Wilkowski <[email protected]>

* bumped version to RC1

Signed-off-by: Dominik Wilkowski <[email protected]>

* Added session max age cookie to match keystone.uid cookie expiry

* smooth scroll spped now based on current scroll position

* Restore/repair S3 image uploading in tinymce

* Use custom root for S3 paths

* Check that req.session.cookie exists before setting maxAge

* Make listing browser versions a more obvious PR testing requirement

* Enhance numeric fields

* Replace / with . to delimiter the file extension

* Update part-4.md

Corrected the api.event route. The "routes" was missing
app.post('/api/event', routes.api.event.post);

* Fix typo: s/gloing/going/

* Update options.md (keystonejs#4621)

Fix typo error udpatedBy -> updatedBy

* Fixed typo (keystonejs#4597)

* Added letsencrypt configuration docs for keystonejs#4181

* Added more info on Application updates with required relationships.

* Documented breaking change to `pre:routes` behaviour.

* Update `package.json` reference to rc1

* Upgrade qs to 6.5.2

* Add pointer to Keystone 4 beta/RC release notes

*  - Upgrade to Mongoose 4.13.14: https://github.com/Automattic/mongoose/blob/master/History.md#41314--2018-05-25
 - Add useMongoClient per http://thecodebarbarian.com/mongoose-4.11-use-mongo-client.html

* Update z-index of color chooser

The previous z-index of 2 was not enough for the popover to appear above the "Save" footer, which has z-index: 99

* Fix keystonejs#4706: Docs: Application Updates is 404

* Fix keystonejs#4707: Docs: Edit this page links are broken

* Fix keystonejs#4688: Deprecated File field types have broken docs link

* Remove WIP notes

* Fix keystonejs#4708: Update Getting Started page

* added semver notations to dependencies

Signed-off-by: Dominik Wilkowski <[email protected]>

* fixed typo

Signed-off-by: Dominik Wilkowski <[email protected]>

* Improve sanity checking for signin "from" param

* Minor fixes and improvements to the location field type (keystonejs#4455)

* Minor fix to location fields - no reason to depend on the order of address_components coming from Google

* Minor fix to location fields - Better handling of `address_components` returned from Google API

* Minor fix to location fields - no reason to depend on the order of address_components coming from Google

* Minor fix to location fields - Better handling of `address_components` returned from Google API

* Update to multer 1.3.1 and automatically clean uploaded files (keystonejs#4704)

* Update to multer 1.3.1 and automatically clean uploaded files

* Fix typo in bindBodyParser

* Add missing next() (thanks @ttsirkia!)

* Reviewed Getting Started documentation (keystonejs#4721)

- FIxed spelling, grammar and broken link issues with the Getting Started documentation.
- Ensured that Keystone is capitalised everywhere in the docs
- Set Mongoose docs link to V4

* updating package bundle

Signed-off-by: Dominik Wilkowski <[email protected]>

* bumped version 📣🎉

Signed-off-by: Dominik Wilkowski <[email protected]>

* FIxing broken links in README.md

FIxing broken links in README.md

* remove lock files

Signed-off-by: Dominik Wilkowski <[email protected]>

* ignore lock files

Signed-off-by: Dominik Wilkowski <[email protected]>

* Adding Favicon to Keystone 4 website

Tested with Chrome and Firefox.

* Added Google Analytics Code to V4 website

* Removed incorrect image

Removed safari-pinned-tab.svg, which was a black square.

* Created 404.js

Currently giving errors

TypeError: Cannot read property 'initial' of undefined

  - index.js:22 ExtractTextPlugin.<anonymous>
    [website]/[extract-text-webpack-plugin]/index.js:22:9

  - Array.forEach

  - index.js:21 ExtractTextPlugin.mergeNonInitialChunks
    [website]/[extract-text-webpack-plugin]/index.js:21:16

  - index.js:275 ExtractTextPlugin.<anonymous>
    [website]/[extract-text-webpack-plugin]/index.js:275:12

  - Array.forEach

  - index.js:273 ExtractTextPlugin.<anonymous>
    [website]/[extract-text-webpack-plugin]/index.js:273:21

  - async.js:52
    [website]/[async]/lib/async.js:52:16

  - async.js:236 Object.async.forEachOf.async.eachOf
    [website]/[async]/lib/async.js:236:30

  - async.js:209 Object.async.forEach.async.each
    [website]/[async]/lib/async.js:209:22

  - index.js:237 ExtractTextPlugin.<anonymous>
    [website]/[extract-text-webpack-plugin]/index.js:237:10

  - Tapable.js:71 Compilation.applyPluginsAsync
    [website]/[tapable]/lib/Tapable.js:71:13

  - Compilation.js:525 Compilation.seal
    [website]/[webpack]/lib/Compilation.js:525:7

  - Compiler.js:397 Compiler.<anonymous>
    [website]/[webpack]/lib/Compiler.js:397:15

  - Tapable.js:103
    [website]/[tapable]/lib/Tapable.js:103:11

  - Compilation.js:445 Compilation.<anonymous>
    [website]/[webpack]/lib/Compilation.js:445:10

  - Compilation.js:417
    [website]/[webpack]/lib/Compilation.js:417:12

* Fixed broken links to componants

And added a link to the logo in the header

* Tweaking the content

* Adding Google Analytics and Favicons (keystonejs#4740)

* Adding Favicon to Keystone 4 website
* Added Google Analytics Code to V4 website
* Removed safari-pinned-tab.svg, which was a black square.

* Add Netlify redirects for v3 paths to v4 equivalents

* Fixed a typo in Project-Options.md

The `name` option appears twice, instead of the 2nd being `brand`.

* Fixed links to configuration pages

* Link to 4.x release history

* Make titles for Setting Up sections consistent

* Include defaultColumns in code example

* Improve section labels for Get Started

* Clean up text & formatting

* Clean up text & formatting

* Update index.md

minor wording error fix

* Update part-4.md

* Fix keystonejs#4762: Bump kerberos & letsencrypt-express dependencies

* Correct typo in templates/views/addEvent.pug

Fix keystonejs#4805

* Fix typo in part 4 of tutorial (thanks @ebrahimamer)

* add alt test to delete button

* Fix keystonejs#4815: Typo in Getting started part 4 tutorial

* Fix keystonejs#4818: Add redirect for /guide/config

* documentation updates

* DOCS: Fix typo for TextArray Field

* Update Underscore-Methods.md

underscore instead of undercore

* Update options.md

Link is broken without `http://`

* Fixed incorrectly named API method label (fixes keystonejs#4825)

* docs(syntax): update an upper-case (keystonejs#4810)

By copying and pasting the site, I realized that the list was previously referenced with an uppercase.

* incorrect link to database docs (keystonejs#4833)

* fix: fields explorer invalid capitilisations (keystonejs#4834)

* Bug - Fix UTC DateColumn vaue display (keystonejs#4841)

Added toMoment method to allow Moment.js to use utc dates.
Updated getValue to use toMoment for proper output.

* Fixed typo in paginate() docs (keystonejs#4839)

* Refer to the newest release "4.0.0"

Probably forgot to update part of readme from the older release "4.0.0.rc.1"

* Completed opening sentence

The sentence "Once you retrieve a list from Keystone, the mongoose methods can be accessed from." seemed incomplete

* Added option to hide Today button in Date field (keystonejs#4869)

* Fixed dependsOn setting when applied to a boolean field set to false by default (keystonejs#4867)

* UPDATE deleteItem action with custom error message (keystonejs#4683)

* Return a 500 error when `item.remove` fails (keystonejs#4832)

* Return a 500 error when `item.remove` fails

Currently, errors from `item.remove` are not handled at all in the callback. This gives an empty 200 back to the frontend, which will do nothing with this response (no visual feedback on the error).
We should return an actual error. All suggestions on how to return this error Keystone style are welcome.

* directly send the `err` to `apiError`

* Build S3 upload name when not present (keystonejs#4871)

* Restore/repair S3 image uploading in tinymce

* Use custom root for S3 paths

* Build S3 upload name when not present

* Fix markup typo in quick start docs. (keystonejs#4854)

The `auto update` field was highlighted incorrectly.

* Urlfield enahancement (keystonejs#4856)

* add thumb option support to url type

* do not fix the height of form input since it the value can be out of bound
@kristian-welsh
Copy link

For others who encounter this in the future:
None of the above worked for me, but i did manage to disable the feature causing the error by replacing the contents of node_modules/grunt-mocha/node_modules/growl/lib/growl.js with

'use strict';
// do nothing
growl() {

}

@plroebuck
Copy link
Contributor

@kristian-welsh, why not follow the instructions?

@kristian-welsh
Copy link

@plroebuck Thank you, I didn't realise that on windows growl needs to be manually installed. I was trying to stop an error thrown by grunt so it would display my test results clearly, if in the future I want notifications I may follow those instructions.

@plroebuck plroebuck added the area: integrations related to working with 3rd party software (e.g., babel, typescript) label May 25, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area: integrations related to working with 3rd party software (e.g., babel, typescript)
Projects
None yet
Development

No branches or pull requests

9 participants