WDIO Javascript Mocha/Chai crashes NPM when expect fails - webdriver-io

When running a test, the it blocks are being executed and I'm getting this output.
What I am unable to understand is why the npm command is exiting with an error?
3) GAMETRIBE CELL C WAP DOI - SUCCESS FLOW Webdriver should target and click the subscription CTA:
An element could not be located on the page using the given search parameters ("[class='button']").
running phantomjs
Error: An element could not be located on the page using the given search parameters ("[class='button']").
at getText() - index.js:312:3
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! webdriver_typescript#1.0.0 test-cellc: `node ./node_modules/typescript/lib/tsc.js && node ./node_modules/webdriverio/bin/wdio ./dist/wdio.conf.mcm.js --suite cellcWapDoi`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the webdriver_typescript#1.0.0 test-cellc script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! /Users/davidabes/.npm/_logs/2017-12-14T06_44_07_155Z-debug.log
My test cases look like this:
export default function() {
it('Webdriver should target and click the subscription CTA', function() {
const yesLink = browser.element("[class='button']");
console.log(yesLink.getText());
console.log(yesLink.getTagName());
yesLink.click();
});

It seems if any of the tests fail, then it seems mocha exits with an error code of 1 ... I just can't remember where in the docs I read this.

Related

Vue: npm run serve crashes when a broken link is added

I have just started using Vue 3.
The npm run serve command works normally. However, once a broken link is added to the folder that npm is tracking, the npm run serve command crashes completely. It used to show any errors in the compiled Vue code and still keep running.
After removing the link, the npm run serve command can be run again to compile a working Vue project.
The crash log is as follows:
node:internal/process/promises:225
triggerUncaughtException(err, true /* fromPromise */);
^
[Error: ENOENT: no such file or directory, stat '/home/brandsma/main/work/projects/vue/portfolio_main/portfolio/src/components/.#navigation.vue'] {
errno: -2,
code: 'ENOENT',
syscall: 'stat',
path: '/home/brandsma/main/work/projects/vue/portfolio_main/portfolio/src/components/.#navigation.vue'
}
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! portfolio#0.1.0 serve: `vue-cli-service serve`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the portfolio#0.1.0 serve script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! /home/brandsma/.npm/_logs/2020-12-25T13_56_54_511Z-debug.log
It seems to be a problem with the stat command crashing after automatically trying to follow the broken link: .#navigation.vue.
.#{filename}.vue is a link/file created by spacemacs whenever a file is edited.
npm version:
6.14.10
Vue version:
#vue/cli 4.5.9
Anyone have any ideas how to fix this?
You can configure Webpack's dev server to ignore these files:
// vue.config.js
module.exports = {
devServer: {
watchOptions: {
ignored: ['**/.#*.vue', 'node_modules/**']
}
}
}

ELIFECYCLE code 2 eslint error with create-react-library

I would like to create a re-usable react component library and for boiler plate i came cross create-react-library - https://www.npmjs.com/package/create-react-library.
I followed the steps to create new library using npx command and it was successfully.
I have discovered that i was unable to run npm run test but if i run eslint . on command prompt it works fine so not sure if getting this error.
Code Editor: Visual Studio Code.
MacBook:testlib xx$ npm run test
> testlib#1.0.0 test /Users/xx/Documents/Repos/testlib
> run-s test:unit test:lint test:build
> testlib#1.0.0 test:unit /Users/xx/Documents/Repos/testlib
> cross-env CI=1 react-scripts test --env=jsdom
PASS src/index.test.tsx
ExampleComponent
✓ is truthy (6ms)
Test Suites: 1 passed, 1 total
Tests: 1 passed, 1 total
Snapshots: 0 total
Time: 5.4s
Ran all test suites.
> testlib#1.0.0 test:lint /Users/xx/Documents/Repos/testlib
> eslint .
Oops! Something went wrong! :(
ESLint: 6.8.0.
No files matching the pattern "." were found.
Please check for typing mistakes in the pattern.
npm ERR! code ELIFECYCLE
npm ERR! errno 2
npm ERR! testlib#1.0.0 test:lint: `eslint .`
npm ERR! Exit status 2
npm ERR!
npm ERR! Failed at the testlib#1.0.0 test:lint script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! /Users/xx/.npm/_logs/2020-08-06T10_19_00_172Z-debug.log
ERROR: "test:lint" exited with 2.
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! testlib#1.0.0 test: `run-s test:unit test:lint test:build`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the testlib#1.0.0 test script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! /Users/xx/.npm/_logs/2020-08-06T10_19_00_222Z-debug.log

Unable to build my Vuejs application using npm run build

When I run npm run build in my Vuejs application I get the following error:
compiler.hooks.compilation.tap(
^
TypeError: Cannot read property 'compilation' of undefined
at OptimizeCssAssetsWebpackPlugin.apply (C:\Users\EFOSA\Desktop\my_project\client\node_modules\last-call-webpack-plugin\src\index.js:170:20)
at Compiler.apply (C:\Users\EFOSA\Desktop\my_project\client\node_modules\tapable\lib\Tapable.js:375:16)
at webpack (C:\Users\EFOSA\Desktop\my_project\client\node_modules\webpack\lib\webpack.js:33:19)
at err (C:\Users\EFOSA\Desktop\my_project\client\build\build.js:19:3)
at next (C:\Users\EFOSA\Desktop\my_project\client\node_modules\rimraf\rimraf.js:75:7)
at CB (C:\Users\EFOSA\Desktop\my_project\client\node_modules\rimraf\rimraf.js:111:9)
at C:\Users\EFOSA\Desktop\my_project\client\node_modules\rimraf\rimraf.js:137:14
at FSReqWrap.oncomplete (fs.js:154:21)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! my_project#1.0.0 build: node build/build.js
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the my_project#1.0.0 build script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! C:\Users\EFOSA\AppData\Roaming\npm-cache_logs\2019-07-02T07_51_40_908Z-debug.log
I'm running webpack 3.12.
Could someone please help me with this?
There is a problem with your configuration and/or plugin version. Check the optimize-css-assets-webpack-plugin documentation:
For webpack v3 or below please use
optimize-css-assets-webpack-plugin#3.2.0. The
optimize-css-assets-webpack-plugin#4.0.0 version and above supports
webpack v4.

The NativeScript Plugin Seed Demo Does Not Run

We are trying to use our native codes in Nativescript therefore we tried to test nativeScript plugin seed. We follow the steps to in README however demo does not run and stops.
We tried all available version we could reach and applied the flow we see in guidance videos.
Last section of terminal messages:
Webpack compilation complete. Watching for file changes. Webpack build
done! Copying template files... Unable to apply changes on device:
F2CB7B69-FE7F-4EE7-9150-133E604FBF18. Error is: zlib: unexpected end
of file. npm ERR! code ELIFECYCLE npm ERR! errno 134 npm ERR!
nativescript-tstpin#1.0.0 demo.ios: npm run tsc && cd ../demo && tns
run ios --syncAllFiles --emulator npm ERR! Exit status 134 npm ERR!
npm ERR! Failed at the nativescript-tstpin#1.0.0 demo.ios script. npm
ERR! This is probably not a problem with npm. There is likely
additional logging output above.
npm ERR! A complete log of this run can be found in: npm ERR!
/Users/hasanguner/.npm/_logs/2019-05-22T08_53_09_212Z-debug.log
Hasans-MacBook-Pro:src hasanguner$
After the messages in the terminal it stops. It would be great if anyone could help how to step over this starting point.
Solved. I tried the following: On Mac:
sudo npm cache clean --force
Then worked fine.
If anyone tells me the reason it would be perfect.

Yeoman generator always get some error

When I'm trying using yeoman web generator, although it's working, but looking through the whole generate progress, it always gives me some errors below, no matter what generator I used, they are always there.
npm ERR! phantomjs#1.9.7-6 install: `node install.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the phantomjs#1.9.7-6 install script.
npm ERR! This is most likely a problem with the phantomjs package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! node install.js
npm ERR! You can get their info via:
npm ERR! npm owner ls phantomjs
npm ERR! There is likely additional logging output above.
npm ERR! System Darwin 13.1.0
npm ERR! command "node" "/usr/local/bin/npm" "install"
npm ERR! cwd /Applications/MAMP/htdocs/DECO3800/test
npm ERR! node -v v0.10.28
npm ERR! npm -v 1.4.10
npm ERR! code ELIFECYCLE
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR! /Applications/MAMP/htdocs/DECO3800/test/npm-debug.log
npm ERR! not ok code 0
Just wondering why it would be like that, and how to solve it or it totally no affect to my built web project?
There seems to be a problem with the Bitbucket CDN at the moment.
You can use this as a temporary workaround:
PHANTOMJS_CDNURL=http://cnpmjs.org/downloads npm install phantomjs
The workaround mentioned is:
You can download the phantomjs zip manually here: https://bitbucket.org/ariya/phantomjs/downloads and move it to the dir npm wants to download it to.
Downloading http://cdn.bitbucket.org/ariya/phantomjs/downloads/phantomjs-1.9.7-macosx.zip
Saving to /var/folders/fl/ssqg11_j1hs5mk4fvyqgjcmc0000gn/T/phantomjs/phantomjs-1.9.7-macosx.zip
.
.
Whenever you try to build your project the next time, phantomjs is already present and doesn't have to be downloaded, so the download will be skipped and your project will finish (unless another error is encountered).
I have the same problem and I have come across this thread where someone claims he found a workaround to a similar problem: https://github.com/Medium/phantomjs/issues/161
"Same here, got it working by downloading from https://bitbucket.org/ariya/phantomjs/downloads to the path that it tries to save it to. Has the bitbucket repo been switched between private/public recently?"
It looks like the phantomjs download is no longer valid (or similar); and the fact that many people are having the same issue at the same time suggests this is probably the case.
I don't know enough to advise you how to proceed but maybe this can point you in the right direction.
Got a similar problem using the following setup:
Windows 7 x64
node v0.10.32
npm v2.5.0
yeoman v1.3.2
grunt-cli v0.1.13
grunt-html-snap v0.6.1 (grunt-html-snapshots has the same problem)
grunt-lib-phantomjs v0.3.0 (a dependancy of grunt-html-snap(s) )
phantomjs v1.9.15 (a dependancy of grunt-lib-phantomjs(s) )
Of less importance:
bower v1.3.12
git v1.9.4.msysgit.2
Error:
phantomjs#1.9.15 install d:\TEST\a111\node_modules\grunt-html-s
napshot\node_modules\grunt-lib-phantomjs\node_modules\phantomjs
node install.js
Download already available at C:\Users\USER~1\AppData\Local\Temp\phantomjs\phan
tomjs-1.9.8-windows.zip
Extracting zip contents
Removing d:\TEST\a111\node_modules\grunt-html-snapshot\node_modul
es\grunt-lib-phantomjs\node_modules\phantomjs\lib\phantom
Copying extracted folder C:\Users\USER~1\AppData\Local\Temp\phantomjs\phantomjs
-1.9.8-windows.zip-extract-1424937053563\phantomjs-1.9.8-windows -> d:\SVN\DBITS
\Web\B-RAD\a111\node_modules\grunt-html-snapshot\node_modules\grunt-lib-phantomj
s\node_modules\phantomjs\lib\phantom
Writing location.js file
Phantom installation failed { [Error: EPERM, operation not permitted 'd:\SVN\DBI
TS\Web\B-RAD\a111\node_modules\grunt-html-snapshot\node_modules\grunt-lib-phanto
mjs\node_modules\phantomjs\lib\phantom\phantomjs.exe']
errno: 50,
code: 'EPERM',
path: 'd:\\SVN\\DBITS\\Web\\B-RAD\\a111\\node_modules\\grunt-html-snapshot\\no
de_modules\\grunt-lib-phantomjs\\node_modules\\phantomjs\\lib\\phantom\\phantomj
s.exe',
syscall: 'chmod' } Error: EPERM, operation not permitted 'd:\SVN\DBITS\Web\B-R
AD\a111\node_modules\grunt-html-snapshot\node_modules\grunt-lib-phantomjs\node_m
odules\phantomjs\lib\phantom\phantomjs.exe'
at Object.fs.chmodSync (evalmachine.<anonymous>:832:18)
at Object.chmodSync (d:\TEST\a111\node_modules\grunt-html-sna
pshot\node_modules\grunt-lib-phantomjs\node_modules\phantomjs\node_modules\fs-ex
tra\node_modules\graceful-fs\polyfills.js:141:17)
at Promise.validExit [as _successFn] (d:\TEST\a111\node_modul
es\grunt-html-snapshot\node_modules\grunt-lib-phantomjs\node_modules\phantomjs\i
nstall.js:145:8)
at Promise._call (d:\TEST\a111\node_modules\grunt-html-snapsh
ot\node_modules\grunt-lib-phantomjs\node_modules\phantomjs\node_modules\kew\kew.
js:373:13)
at Promise._withInput (d:\TEST\a111\node_modules\grunt-html-s
napshot\node_modules\grunt-lib-phantomjs\node_modules\phantomjs\node_modules\kew
\kew.js:333:25)
at Promise.resolve (d:\TEST\a111\node_modules\grunt-html-snap
shot\node_modules\grunt-lib-phantomjs\node_modules\phantomjs\node_modules\kew\ke
w.js:105:27)
at resolver (d:\TEST\a111\node_modules\grunt-html-snapshot\no
de_modules\grunt-lib-phantomjs\node_modules\phantomjs\node_modules\kew\kew.js:40
9:17)
at CB (d:\TEST\a111\node_modules\grunt-html-snapshot\node_mod
ules\grunt-lib-phantomjs\node_modules\phantomjs\node_modules\fs-extra\node_modul
es\rimraf\rimraf.js:68:5)
at Object.oncomplete (fs.js:107:15)
npm ERR! Windows_NT 6.1.7601
npm ERR! argv "c:\\Program Files\\nodejs\\node.exe" "c:\\Program Files\\nodejs\\
node_modules\\npm\\bin\\npm-cli.js" "install" "grunt-html-snapshot"
npm ERR! node v0.10.32
npm ERR! npm v2.5.0
npm ERR! code ELIFECYCLE
npm ERR! phantomjs#1.9.15 install: `node install.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the phantomjs#1.9.15 install script 'node install.js'.
npm ERR! This is most likely a problem with the phantomjs package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! node install.js
npm ERR! You can get their info via:
npm ERR! npm owner ls phantomjs
npm ERR! There is likely additional logging output above.
npm ERR! Please include the following file with any support request:
npm ERR! d:\TEST\a111\npm-debug.log
At first I thought I solved it with the fix I posted on github HERE. On this github issue post you can also find other possible solutions.
But when I tried to generate a new project a few weeks later, I ran into the same issue...
My generator executes the following install commands:
install: function () {
var self = this,
done = self.async();
self.log(msgStepStart('------- 7: Installing! -------'));
// ---------- Generate STRUCTURE : Installation of npm packages START ---------- //
self.npmInstall([
'grunt#0.4.5',
'grunt-contrib-clean#0.6.0',
'grunt-contrib-concat#0.5.0',
'grunt-contrib-connect#0.9.0',
'grunt-contrib-copy#0.7.0',
'grunt-contrib-cssmin#0.11.0',
'grunt-contrib-htmlmin#0.3.0',
'grunt-contrib-jshint#0.10.0',
'grunt-contrib-less#1.0.0',
'grunt-contrib-uglify#0.7.0',
'grunt-contrib-watch#0.6.1',
'grunt-html-snapshot#0.6.1',
'grunt-rev#0.1.0',
'grunt-text-replace#0.4.0',
'grunt-usemin#3.0.0',
'jit-grunt#0.9.0',
'jshint-stylish#1.0.0',
'load-grunt-tasks#2.0.0',
'lodash#2.4.1',
'request#2.42.0', // Dependancy: grunt-html-snapshot#0.6.1
'time-grunt#1.0.0'
], { 'save': true, 'saveExact': true }, function() {
done();
self.log(msgStepEnd('------- 7: I am done installing! -------'));
});
// npm save as save, saveDev or saveExact?
// --save: Package will appear in your dependencies.
// --save-dev: Package will appear in your devDependencies.
// --save-optional: Package will appear in your optionalDependencies.
// When using any of the above options to save dependencies to your package.json, there is an additional, optional flag:
// --save-exact: Saved dependencies will be configured with an exact version rather than using npm's default semver range operator.
// --save-dev-exact would be the sam as | { 'saveDev': true } => { 'saveDevExact': true }
// ---------- Generate STRUCTURE : Installation of npm packages END ---------- //
}
I also tried the phantomjs troubleshooting and none of them solved my problem.
Then when I tried to install phantomjs in an empty folder using the npm install command in gitbash and it installed without any error repeatedly.
$ npm install phantomjs
OR
$ npm install phantomjs#v1.9.15
When I did this with grunt-lib-phantomjs, it got the same error 3 times out of 10.
$ npm install grunt-lib-phantomjs
OR
$ npm install grunt-lib-phantomjs#0.3.0
And when I did this with grunt-html-snapshot, it got the same error 10 times out of 10.
$ npm install grunt-html-snapshot
OR
$ npm install grunt-html-snapshot#0.6.1
This got me thinking. I installed phantomjs with npm on a new folder and ran my generator. This resulted in an installation without errors 10 out of 10.
To let the generator handel the complete installation I added the installation of phantomjs under the conflicts method priority of the generator to be shure it got installed before the installation of the other npm installs.
conflicts: function () {
var self = this,
done = self.async();
self.log(msgStepStart('------- 6: Handeling Conflicts! -------'));
self.npmInstall([
'phantomjs#1.9.15',
], {}, function() {
done();
self.log(msgStepEnd('------- 6: I handled the conflicts! -------'));
});
},
This fixed my problem completely, hope it is helpful for someone else to.
P.S.:
If you use any kind of versioning control that leaves out the installed node_modules for the deployed project. You might consider using the following in your end method priority of your generator.
end: function () {
var self = this,
done = self.async();
self.log(msgStepStart('------- 8: End! -------'));
self.spawnCommand('npm dedupe').on('exit', function(){
self.spawnCommand('npm shrinkwrap').on('exit', function(){
self.log();
self.log(clc.green('!') + clc.whiteBright(' Successfully created ') + clc.cyan(self.appTitle));
self.log(clc.green('!') + clc.whiteBright(' To see your site, run:'));
self.log('\t' + clc.yellowBright('grunt serve'));
self.log();
done();
self.log(msgStepEnd('------- 8: The End! -------'));
});
});
}
This combo will result in a deduplicated installation with fixed versions on the main and dependency levels.
This will also keep the jsphantom install on the main level and not as a dependency to avoid the error discussed. And thus will result in a clean install when you downloaded a versioned project without the node_modules folder using:
$ npm install
npm dedupe docs
npm shrinkwrap docs