Closed j-a-m-l closed 7 years ago
I can't seem to find the karma-electron
integration on any branch. Can you link me to it?
Sorry @twolfson , I didn't push any commit with my attempts.
But now, since you asked about it, I've pushed a branch to my forked repo with some temporal changes: https://github.com/j-a-m-l/ark-desktop/tree/debug-karma-electron
The issue is you're missing the useIframe: false
. We need this to properly use require
across multiple levels of node modules. Closing issue eagerly
Thanks @twolfson.
That wasn't right, but now the errors is: "Cannot read 'concat' of undefined". Replacing
module.paths = module.paths.concat(__require('module')._nodeModulePaths('{{!karmaBasePath}}'));
with
module.paths = (module.paths || []).concat(__require('module')._nodeModulePaths('{{!karmaBasePath}}'));
would fix it.
But it would trigger other problem: "Maximum call stack size exceeded".
I looked into this a bit and that error is being caused by angular-mocks.js
overwriting Node.js' definition of module
which is leading to a sticky situation
After disabling angular-mocks
, I'm seeing the "Maximum call stack size exceeded" between our window.require
definition and Mocha's wrapper. I'm looking into why this doesn't happen in our other frameworks
Also, fwiw, I disabled coverage
so the stack traces are more legible -- especially via the "Debug" window (requires disabling --single-run
and opening via "Debug" button)
It looks like the issue is being caused by 4.0.0
version of mocha (released about 1 month ago) which overwrites the global require
. Downgrading to 3.5.3
fixed the issue and moved to a new one for Angular in the repo's domain:
Electron 1.8.1 (Node 8.2.1) ERROR
Uncaught TypeError: module is not a function
at services/network.service.js:23
which corresponds to:
describe('networkService', function () {
beforeEach(module('arkclient.services'))
It looks like there's already a Mocha require=
related issue so I'd suggest subscribing to that and using a downgraded version for now:
Thank you very much for all your help.
I'm trying to add some tests for ARK desktop wallet. In this project, the Angular.js app is requiring Node.js modules (on package.json), so using
karma-electron
is a way to loading those modules.I've changed the
preprocessors
andbrowsers
of the Karma.js configuration, but I'm having problems:An error "Cannot find module 'path'" is triggered from
node_modules/mocha/mocha.js:1
. That files re-implements therequire
function at the beginning.