wallabyjs / public

Repository for Wallaby.js questions and issues
http://wallabyjs.com
760 stars 45 forks source link

Failed to run compilers on ... Error: : Invalid mapping: #594

Closed cResults closed 8 years ago

cResults commented 8 years ago

Trying to get wallaby running on an existing project that I've been added to. While trouble-shooting prior errors I have:

All files seem to load correctly, but when wallaby starts to run them, I'm getting

Failed to run compilers on src/app.spec.js, Error: : Invalid mapping: {"generated":{"line":3,"column":0},"source":"","original":{"line":16,"column":0},"name":null}
  at SourceMapGenerator_validateMapping [as _validateMapping] (C:\tfs\wfDev\Projects\Source\Central\WebApplication\node_modules\source-map\lib\source-map-generator.js:277:13)
  at SourceMapGenerator_addMapping [as addMapping] (C:\tfs\wfDev\Projects\Source\Central\WebApplication\node_modules\source-map\lib\source-map-generator.js:101:12)
  at SourceMap.mark (C:\tfs\wfDev\Projects\Source\Central\WebApplication\node_modules\babel-generator\lib\source-map.js:94:9)
  at CodeGenerator._push (C:\tfs\wfDev\Projects\Source\Central\WebApplication\node_modules\babel-generator\lib\buffer.js:333:35)
  at CodeGenerator.push (C:\tfs\wfDev\Projects\Source\Central\WebApplication\node_modules\babel-generator\lib\buffer.js:302:10)
  at CodeGenerator.Identifier (C:\tfs\wfDev\Projects\Source\Central\WebApplication\node_modules\babel-generator\lib\generators\types.js:44:8)
  at CodeGenerator._print (C:\tfs\wfDev\Projects\Source\Central\WebApplication\node_modules\babel-generator\lib\printer.js:184:17)
  at C:\tfs\wfDev\Projects\Source\Central\WebApplication\node_modules\babel-generator\lib\printer.js:120:38

As are result I set the sourceMap property on the babel option (see below) to false, but get the same error.

Wallaby Core v1.0.225 Visual Studio Enterprise 2015 version 4.6.01038 Atom v1.7.3 Windows 10

Wallaby.js configuration file

/* eslint-disable no-var, no-shadow, dot-notation */

module.exports = function (wallaby) {
    var compilerOptions = require('./build/babel-options').wallaby();
    wallaby.defaults.files.load = false;
    wallaby.defaults.tests.load = false;
    console.log("SOURCE MAP " + compilerOptions.sourceMap)
    return {
        files: [
            //included
            'src/**/*.js*',
            'src/**/*.html',
            'src/**/*.css',
            'test/data/*.js',
            'test/RouterStub.js',

            //excluded (ignore: true)
            '!src/**/*.test.js*',
            '!src/main.js',

            //pre loaded
            { pattern: './wwwroot/jspm_packages/system.js', load: true, instrument: false },
            { pattern: './wwwroot/jspm_packages/system-polyfills.js', load: true, instrument: false },
            { pattern: './wwwroot/config.js', load: true, instrument: false },
            { pattern: './test/test-main-karma.js', load: true, instrument: false },
        ],

        tests: [
          'src/**/*.test.js'
        ],

        compilers: {
            '**/*.js': wallaby.compilers.babel(compilerOptions)
        },

        middleware: (app, express) => {
            app.use('/wwwroot/jspm_packages', express.static(require('path').join(__dirname, 'wwwroot', 'jspm_packages')));
        },

        bootstrap: function (wallaby) {
            var promises = [];
            var i = 0;
            var len = wallaby.tests.length;
            console.log("fooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo");
            wallaby.delayStart();

            System.config({
                paths: {
                    "*": "*",
                    'testData/*': 'test/data/*',
                    'github:*': 'jspm_packages/github/*',
                    'npm:*': 'jspm_packages/npm/*',

                    'api/*': 'src/api/*',
                    'bindings/*': 'src/bindings/*',
                    'cache/*': 'src/cache/*',
                    'factories/*': 'src/factories/*',
                    'flow/*': 'src/flow/*',
                    'form/*': 'src/form/*',
                    'models/*': 'src/models/*',
                    'resources/*': 'src/resources/*',
                    'routeConfigs/*': 'src/routeConfigs/*',
                    'selfService/*': 'src/selfService/*',
                    'utils/*': 'src/utils/*',
                    'workspace/*': 'src/workspace/*',
                }
            });
            for (; i < len; i++) {
                promises.push(System['import'](wallaby.tests[i].replace(/\.js$/, '')));
            }

            Promise.all(promises).then(function () {
                wallaby.start();
            }).catch(function (e) { setTimeout(function () { throw e; }, 0); });
        },

        debug: true
    };
};

babel-options.js:

var path = require('path');

exports.base = function () {
    return {
        filename: '',
        filenameRelative: '',
        sourceMap: true,
        sourceRoot: '',
        moduleRoot: path.resolve('src').replace(/\\/g, '/'),
        moduleIds: false,
        comments: false,
        compact: false,
        code: true,
        presets: ['es2015-loose', 'stage-1'],
        plugins: [
          'syntax-flow',
          'transform-decorators-legacy',
          'transform-flow-strip-types',

          'transform-class-properties',
          'transform-function-bind'
        ]
    };
};

exports.wallaby = function () {
    var options = exports.base();
    options.sourceMap = false;
    return options;
};

I'm at a wall. Would appreciate any ideas that may lead to an answer. Thank you.

cResults commented 8 years ago

I tried adding babel as such:

exports.wallaby = function () {
    var options = exports.base();
    options.sourceMap = false;
    options.babel = require('babel-core');
    return options;
};
ArtemGovorov commented 8 years ago

Thanks for providing the configs and the error details.

In your babel-options.js, delete filename and filenameRelative from the babel options. I'm not sure why you're setting them to be empty strings, but this breaks babel source maps generator (as the stack trace indicates).

...

exports.wallaby = function () {
    var options = exports.base();
    delete options.filename;
    delete options.filenameRelative;
    return options;
};

I have also added some checks in wallaby core v1.0.226 to automatically delete these setting if they are empty. So if your core gets updated to core v1.0.226, you don't need the above mentioned changes.

Not related to the issue, but you need to remove the leading ./ from your file patterns (they work in VS, but may not work in Atom):

{ pattern: './wwwroot/jspm_packages/system.js', load: true, instrument: false },
{ pattern: './wwwroot/jspm_packages/system-polyfills.js', load: true, instrument: false },
{ pattern: './wwwroot/config.js', load: true, instrument: false },
{ pattern: './test/test-main-karma.js', load: true, instrument: false },
cResults commented 8 years ago

Thank you Artem for your prompt assistance. I made the changes to the babel options. Now it is looking for dependency files as instrumented but cant find them.

Errors

    Line 61:     // forward non-404 errors
    Line 62:     stream.on('error', function error(err) {
    Line 62:     stream.on('error', function error(err) {
    Line 2218: console.error: Potentially unhandled rejection [16] Error: XHR error loading http://localhost:38788/jspm_packages/npm/jquery@2.2.3.js
    Line 2218: console.error: Potentially unhandled rejection [16] Error: XHR error loading http://localhost:38788/jspm_packages/npm/jquery@2.2.3.js
    Line 2218: console.error: Potentially unhandled rejection [16] Error: XHR error loading http://localhost:38788/jspm_packages/npm/jquery@2.2.3.js
    Line 2219:  Error loading http://localhost:38788/jspm_packages/npm/jquery@2.2.3.js
    Line 2313: Sat, 14 May 2016 03:38:57 GMT wallaby:workers Sandbox (active) [i8tps] error: Error: XHR error loading http://localhost:38788/jspm_packages/npm/q@1.4.1.js
    Line 2313: Sat, 14 May 2016 03:38:57 GMT wallaby:workers Sandbox (active) [i8tps] error: Error: XHR error loading http://localhost:38788/jspm_packages/npm/q@1.4.1.js
    Line 2313: Sat, 14 May 2016 03:38:57 GMT wallaby:workers Sandbox (active) [i8tps] error: Error: XHR error loading http://localhost:38788/jspm_packages/npm/q@1.4.1.js
    Line 2314:  Error loading http://localhost:38788/jspm_packages/npm/q@1.4.1.js as "q" from http://localhost:38788/src/form/viewer/parent/parentFactory.test.js
    Line 2315: Runtime error: Error: XHR error loading http://localhost:38788/jspm_packages/npm/q@1.4.1.js
    Line 2315: Runtime error: Error: XHR error loading http://localhost:38788/jspm_packages/npm/q@1.4.1.js
    Line 2315: Runtime error: Error: XHR error loading http://localhost:38788/jspm_packages/npm/q@1.4.1.js
    Line 2316:  Error loading http://localhost:38788/jspm_packages/npm/q@1.4.1.js as "q" from http://localhost:38788/src/form/viewer/parent/parentFactory.test.js
    Line 2318: Sat, 14 May 2016 03:38:57 GMT wallaby:workers Sandbox (active) [i8tps] error: Error: XHR error loading http://localhost:38788/jspm_packages/npm/q@1.4.1.js
    Line 2318: Sat, 14 May 2016 03:38:57 GMT wallaby:workers Sandbox (active) [i8tps] error: Error: XHR error loading http://localhost:38788/jspm_packages/npm/q@1.4.1.js
    Line 2318: Sat, 14 May 2016 03:38:57 GMT wallaby:workers Sandbox (active) [i8tps] error: Error: XHR error loading http://localhost:38788/jspm_packages/npm/q@1.4.1.js
    Line 2319:  Error loading http://localhost:38788/jspm_packages/npm/q@1.4.1.js as "q" from http://localhost:38788/src/form/viewer/parent/parentFactory.test.js
    Line 2320: Runtime error: Error: XHR error loading http://localhost:38788/jspm_packages/npm/q@1.4.1.js
    Line 2320: Runtime error: Error: XHR error loading http://localhost:38788/jspm_packages/npm/q@1.4.1.js
    Line 2320: Runtime error: Error: XHR error loading http://localhost:38788/jspm_packages/npm/q@1.4.1.js
    Line 2321:  Error loading http://localhost:38788/jspm_packages/npm/q@1.4.1.js as "q" from http://localhost:38788/src/form/viewer/parent/parentFactory.test.js

Errors (no such file)

Search "no such file" (62 hits in 1 file)
  new 11 (62 hits)
    Line 2003: Sat, 14 May 2016 03:38:56 GMT wallaby:middleware ENOENT: no such file or directory, open 'C:\Users\dsmith\AppData\Local\Temp\.wallaby\projects\aBP5TbkUOB7Naualksxqh5N8QYw=\cache\instrumented\jspm_packages\npm\jquery@2.2.3.js'
    Line 2004: Sat, 14 May 2016 03:38:56 GMT wallaby:middleware ENOENT: no such file or directory, open 'C:\Users\dsmith\AppData\Local\Temp\.wallaby\projects\aBP5TbkUOB7Naualksxqh5N8QYw=\cache\instrumented\jspm_packages\github\knockout\knockout@3.4.0.js'
    Line 2009: Sat, 14 May 2016 03:38:56 GMT wallaby:middleware ENOENT: no such file or directory, open 'C:\Users\dsmith\AppData\Local\Temp\.wallaby\projects\aBP5TbkUOB7Naualksxqh5N8QYw=\cache\instrumented\form\viewer\windowTools.js'
    Line 2010: Sat, 14 May 2016 03:38:56 GMT wallaby:middleware ENOENT: no such file or directory, open 'C:\Users\dsmith\AppData\Local\Temp\.wallaby\projects\aBP5TbkUOB7Naualksxqh5N8QYw=\cache\instrumented\form\viewer\form.js'
    Line 2013: Sat, 14 May 2016 03:38:57 GMT wallaby:middleware ENOENT: no such file or directory, open 'C:\Users\dsmith\AppData\Local\Temp\.wallaby\projects\aBP5TbkUOB7Naualksxqh5N8QYw=\cache\instrumented\form\viewer\autoSave\autoSave.js'
    Line 2075: Sat, 14 May 2016 03:38:57 GMT wallaby:middleware ENOENT: no such file or directory, open 'C:\Users\dsmith\AppData\Local\Temp\.wallaby\projects\aBP5TbkUOB7Naualksxqh5N8QYw=\cache\instrumented\jspm_packages\npm\q@1.4.1.js'
    Line 2088: Sat, 14 May 2016 03:38:57 GMT wallaby:middleware ENOENT: no such file or directory, open 'C:\Users\dsmith\AppData\Local\Temp\.wallaby\projects\aBP5TbkUOB7Naualksxqh5N8QYw=\cache\instrumented\jspm_packages\npm\jquery@2.2.3.js'
    Line 2089: Sat, 14 May 2016 03:38:57 GMT wallaby:middleware ENOENT: no such file or directory, open 'C:\Users\dsmith\AppData\Local\Temp\.wallaby\projects\aBP5TbkUOB7Naualksxqh5N8QYw=\cache\instrumented\jspm_packages\github\knockout\knockout@3.4.0.js'
    Line 2092: Sat, 14 May 2016 03:38:57 GMT wallaby:middleware ENOENT: no such file or directory, open 'C:\Users\dsmith\AppData\Local\Temp\.wallaby\projects\aBP5TbkUOB7Naualksxqh5N8QYw=\cache\instrumented\form\viewer\autoSave\addProperties.js'
    Line 2095: Sat, 14 May 2016 03:38:57 GMT wallaby:middleware ENOENT: no such file or directory, open 'C:\Users\dsmith\AppData\Local\Temp\.wallaby\projects\aBP5TbkUOB7Naualksxqh5N8QYw=\cache\instrumented\form\viewer\dynamicList\accessorFactory.js'
    Line 2098: Sat, 14 May 2016 03:38:57 GMT wallaby:middleware ENOENT: no such file or directory, open 'C:\Users\dsmith\AppData\Local\Temp\.wallaby\projects\aBP5TbkUOB7Naualksxqh5N8QYw=\cache\instrumented\form\viewer\dynamicList\binding.js'
    Line 2103: Sat, 14 May 2016 03:38:57 GMT wallaby:middleware ENOENT: no such file or directory, open 'C:\Users\dsmith\AppData\Local\Temp\.wallaby\projects\aBP5TbkUOB7Naualksxqh5N8QYw=\cache\instrumented\form\viewer\form.js'
    Line 2104: Sat, 14 May 2016 03:38:57 GMT wallaby:middleware ENOENT: no such file or directory, open 'C:\Users\dsmith\AppData\Local\Temp\.wallaby\projects\aBP5TbkUOB7Naualksxqh5N8QYw=\cache\instrumented\utils\validation\Check.js'
    Line 2109: Sat, 14 May 2016 03:38:57 GMT wallaby:middleware ENOENT: no such file or directory, open 'C:\Users\dsmith\AppData\Local\Temp\.wallaby\projects\aBP5TbkUOB7Naualksxqh5N8QYw=\cache\instrumented\form\viewer\koExtensions\koExtensions.js'
    Line 2130: Sat, 14 May 2016 03:38:57 GMT wallaby:middleware ENOENT: no such file or directory, open 'C:\Users\dsmith\AppData\Local\Temp\.wallaby\projects\aBP5TbkUOB7Naualksxqh5N8QYw=\cache\instrumented\jspm_packages\npm\aurelia-fetch-client@1.0.0-beta.1.2.3.js'
    Line 2131: Sat, 14 May 2016 03:38:57 GMT wallaby:middleware ENOENT: no such file or directory, open 'C:\Users\dsmith\AppData\Local\Temp\.wallaby\projects\aBP5TbkUOB7Naualksxqh5N8QYw=\cache\instrumented\utils\ArrayObserver.js'
    Line 2138: Sat, 14 May 2016 03:38:57 GMT wallaby:middleware ENOENT: no such file or directory, open 'C:\Users\dsmith\AppData\Local\Temp\.wallaby\projects\aBP5TbkUOB7Naualksxqh5N8QYw=\cache\instrumented\utils\Constants.js'
    Line 2143: Sat, 14 May 2016 03:38:57 GMT wallaby:middleware ENOENT: no such file or directory, open 'C:\Users\dsmith\AppData\Local\Temp\.wallaby\projects\aBP5TbkUOB7Naualksxqh5N8QYw=\cache\instrumented\form\viewer\parent\parentFactory.js'
    Line 2146: Sat, 14 May 2016 03:38:57 GMT wallaby:middleware ENOENT: no such file or directory, open 'C:\Users\dsmith\AppData\Local\Temp\.wallaby\projects\aBP5TbkUOB7Naualksxqh5N8QYw=\cache\instrumented\form\viewer\windowTools.js'
    Line 2147: Sat, 14 May 2016 03:38:57 GMT wallaby:middleware ENOENT: no such file or directory, open 'C:\Users\dsmith\AppData\Local\Temp\.wallaby\projects\aBP5TbkUOB7Naualksxqh5N8QYw=\cache\instrumented\form\viewer\sdForm.js'
    Line 2156: Sat, 14 May 2016 03:38:57 GMT wallaby:middleware ENOENT: no such file or directory, open 'C:\Users\dsmith\AppData\Local\Temp\.wallaby\projects\aBP5TbkUOB7Naualksxqh5N8QYw=\cache\instrumented\form\viewer\viewmodel\configure.js'
    Line 2157: Sat, 14 May 2016 03:38:57 GMT wallaby:middleware ENOENT: no such file or directory, open 'C:\Users\dsmith\AppData\Local\Temp\.wallaby\projects\aBP5TbkUOB7Naualksxqh5N8QYw=\cache\instrumented\form\viewer\apiClient\FormApi.js'
    Line 2158: Sat, 14 May 2016 03:38:57 GMT wallaby:middleware ENOENT: no such file or directory, open 'C:\Users\dsmith\AppData\Local\Temp\.wallaby\projects\aBP5TbkUOB7Naualksxqh5N8QYw=\cache\instrumented\form\viewer\apiClient\TemplateVersionApi.js'
    Line 2163: Sat, 14 May 2016 03:38:57 GMT wallaby:middleware ENOENT: no such file or directory, open 'C:\Users\dsmith\AppData\Local\Temp\.wallaby\projects\aBP5TbkUOB7Naualksxqh5N8QYw=\cache\instrumented\jspm_packages\npm\aurelia-event-aggregator@1.0.0-beta.1.2.0.js'
    Line 2164: Sat, 14 May 2016 03:38:57 GMT wallaby:middleware ENOENT: no such file or directory, open 'C:\Users\dsmith\AppData\Local\Temp\.wallaby\projects\aBP5TbkUOB7Naualksxqh5N8QYw=\cache\instrumented\jspm_packages\npm\aurelia-pal-browser@1.0.0-beta.1.2.0.js'
    Line 2165: Sat, 14 May 2016 03:38:57 GMT wallaby:middleware ENOENT: no such file or directory, open 'C:\Users\dsmith\AppData\Local\Temp\.wallaby\projects\aBP5TbkUOB7Naualksxqh5N8QYw=\cache\instrumented\jspm_packages\github\CodeSeven\toastr@2.1.2.js'
    Line 2170: Sat, 14 May 2016 03:38:57 GMT wallaby:middleware ENOENT: no such file or directory, open 'C:\Users\dsmith\AppData\Local\Temp\.wallaby\projects\aBP5TbkUOB7Naualksxqh5N8QYw=\cache\instrumented\jspm_packages\npm\aurelia-testing@0.2.0.js'
    Line 2171: Sat, 14 May 2016 03:38:57 GMT wallaby:middleware ENOENT: no such file or directory, open 'C:\Users\dsmith\AppData\Local\Temp\.wallaby\projects\aBP5TbkUOB7Naualksxqh5N8QYw=\cache\instrumented\jspm_packages\npm\aurelia-dependency-injection@1.0.0-beta.1.2.2.js'
    Line 2176: Sat, 14 May 2016 03:38:57 GMT wallaby:middleware ENOENT: no such file or directory, open 'C:\Users\dsmith\AppData\Local\Temp\.wallaby\projects\aBP5TbkUOB7Naualksxqh5N8QYw=\cache\instrumented\factories\InboxPackage.js'
    Line 2183: Sat, 14 May 2016 03:38:57 GMT wallaby:middleware ENOENT: no such file or directory, open 'C:\Users\dsmith\AppData\Local\Temp\.wallaby\projects\aBP5TbkUOB7Naualksxqh5N8QYw=\cache\instrumented\models\FormTemplate.js'
    Line 2184: Sat, 14 May 2016 03:38:57 GMT wallaby:middleware ENOENT: no such file or directory, open 'C:\Users\dsmith\AppData\Local\Temp\.wallaby\projects\aBP5TbkUOB7Naualksxqh5N8QYw=\cache\instrumented\jspm_packages\github\knockout\knockout@3.4.0.js'
    Line 2193: Sat, 14 May 2016 03:38:57 GMT wallaby:middleware ENOENT: no such file or directory, open 'C:\Users\dsmith\AppData\Local\Temp\.wallaby\projects\aBP5TbkUOB7Naualksxqh5N8QYw=\cache\instrumented\utils\validation\Check.js'
    Line 2196: Sat, 14 May 2016 03:38:57 GMT wallaby:middleware ENOENT: no such file or directory, open 'C:\Users\dsmith\AppData\Local\Temp\.wallaby\projects\aBP5TbkUOB7Naualksxqh5N8QYw=\cache\instrumented\jspm_packages\npm\jquery@2.2.3.js'
    Line 2201: Sat, 14 May 2016 03:38:57 GMT wallaby:middleware ENOENT: no such file or directory, open 'C:\Users\dsmith\AppData\Local\Temp\.wallaby\projects\aBP5TbkUOB7Naualksxqh5N8QYw=\cache\instrumented\utils\Downloader.js'
    Line 2206: Sat, 14 May 2016 03:38:57 GMT wallaby:middleware ENOENT: no such file or directory, open 'C:\Users\dsmith\AppData\Local\Temp\.wallaby\projects\aBP5TbkUOB7Naualksxqh5N8QYw=\cache\instrumented\utils\Filter.js'
    Line 2215: Sat, 14 May 2016 03:38:57 GMT wallaby:middleware ENOENT: no such file or directory, open 'C:\Users\dsmith\AppData\Local\Temp\.wallaby\projects\aBP5TbkUOB7Naualksxqh5N8QYw=\cache\instrumented\factories\ActionVM.js'
    Line 2239: Sat, 14 May 2016 03:38:57 GMT wallaby:middleware ENOENT: no such file or directory, open 'C:\Users\dsmith\AppData\Local\Temp\.wallaby\projects\aBP5TbkUOB7Naualksxqh5N8QYw=\cache\instrumented\src\flow\actions\ViewInSource.js'
    Line 2240: Sat, 14 May 2016 03:38:57 GMT wallaby:middleware ENOENT: no such file or directory, open 'C:\Users\dsmith\AppData\Local\Temp\.wallaby\projects\aBP5TbkUOB7Naualksxqh5N8QYw=\cache\instrumented\jspm_packages\github\github\fetch@0.10.1.js'
    Line 2243: Sat, 14 May 2016 03:38:57 GMT wallaby:middleware ENOENT: no such file or directory, open 'C:\Users\dsmith\AppData\Local\Temp\.wallaby\projects\aBP5TbkUOB7Naualksxqh5N8QYw=\cache\instrumented\cache\indexedDBHandler.js'
    Line 2252: Sat, 14 May 2016 03:38:57 GMT wallaby:middleware ENOENT: no such file or directory, open 'C:\Users\dsmith\AppData\Local\Temp\.wallaby\projects\aBP5TbkUOB7Naualksxqh5N8QYw=\cache\instrumented\factories\DraftTemplate.js'
    Line 2253: Sat, 14 May 2016 03:38:57 GMT wallaby:middleware ENOENT: no such file or directory, open 'C:\Users\dsmith\AppData\Local\Temp\.wallaby\projects\aBP5TbkUOB7Naualksxqh5N8QYw=\cache\instrumented\jspm_packages\npm\aurelia-testing@0.2.0.js'
    Line 2260: Sat, 14 May 2016 03:38:57 GMT wallaby:middleware ENOENT: no such file or directory, open 'C:\Users\dsmith\AppData\Local\Temp\.wallaby\projects\aBP5TbkUOB7Naualksxqh5N8QYw=\cache\instrumented\jspm_packages\npm\aurelia-framework@1.0.0-beta.1.2.2.js'
    Line 2261: Sat, 14 May 2016 03:38:57 GMT wallaby:middleware ENOENT: no such file or directory, open 'C:\Users\dsmith\AppData\Local\Temp\.wallaby\projects\aBP5TbkUOB7Naualksxqh5N8QYw=\cache\instrumented\jspm_packages\npm\aurelia-binding@1.0.0-beta.1.3.4.js'
    Line 2262: Sat, 14 May 2016 03:38:57 GMT wallaby:middleware ENOENT: no such file or directory, open 'C:\Users\dsmith\AppData\Local\Temp\.wallaby\projects\aBP5TbkUOB7Naualksxqh5N8QYw=\cache\instrumented\jspm_packages\npm\aurelia-router@1.0.0-beta.1.2.1.js'
    Line 2265: Sat, 14 May 2016 03:38:57 GMT wallaby:middleware ENOENT: no such file or directory, open 'C:\Users\dsmith\AppData\Local\Temp\.wallaby\projects\aBP5TbkUOB7Naualksxqh5N8QYw=\cache\instrumented\jspm_packages\github\systemjs\plugin-text@0.0.2.js'
    Line 2270: Sat, 14 May 2016 03:38:57 GMT wallaby:middleware ENOENT: no such file or directory, open 'C:\Users\dsmith\AppData\Local\Temp\.wallaby\projects\aBP5TbkUOB7Naualksxqh5N8QYw=\cache\instrumented\jspm_packages\npm\jquery@2.2.3.js'
    Line 2273: Sat, 14 May 2016 03:38:57 GMT wallaby:middleware ENOENT: no such file or directory, open 'C:\Users\dsmith\AppData\Local\Temp\.wallaby\projects\aBP5TbkUOB7Naualksxqh5N8QYw=\cache\instrumented\jspm_packages\github\knockout\knockout@3.4.0.js'
    Line 2276: Sat, 14 May 2016 03:38:57 GMT wallaby:middleware ENOENT: no such file or directory, open 'C:\Users\dsmith\AppData\Local\Temp\.wallaby\projects\aBP5TbkUOB7Naualksxqh5N8QYw=\cache\instrumented\utils\Constants.js'
    Line 2279: Sat, 14 May 2016 03:38:57 GMT wallaby:middleware ENOENT: no such file or directory, open 'C:\Users\dsmith\AppData\Local\Temp\.wallaby\projects\aBP5TbkUOB7Naualksxqh5N8QYw=\cache\instrumented\api\UserApi.Cache.js'
    Line 2282: Sat, 14 May 2016 03:38:57 GMT wallaby:middleware ENOENT: no such file or directory, open 'C:\Users\dsmith\AppData\Local\Temp\.wallaby\projects\aBP5TbkUOB7Naualksxqh5N8QYw=\cache\instrumented\jspm_packages\github\julianshapiro\velocity@1.2.3.js'
    Line 2287: Sat, 14 May 2016 03:38:57 GMT wallaby:middleware ENOENT: no such file or directory, open 'C:\Users\dsmith\AppData\Local\Temp\.wallaby\projects\aBP5TbkUOB7Naualksxqh5N8QYw=\cache\instrumented\jspm_packages\npm\moment@2.13.0.js'
    Line 2290: Sat, 14 May 2016 03:38:57 GMT wallaby:middleware ENOENT: no such file or directory, open 'C:\Users\dsmith\AppData\Local\Temp\.wallaby\projects\aBP5TbkUOB7Naualksxqh5N8QYw=\cache\instrumented\jspm_packages\github\broofa\node-uuid@1.4.7.js'
    Line 2295: Sat, 14 May 2016 03:38:57 GMT wallaby:middleware ENOENT: no such file or directory, open 'C:\Users\dsmith\AppData\Local\Temp\.wallaby\projects\aBP5TbkUOB7Naualksxqh5N8QYw=\cache\instrumented\jspm_packages\github\hubspot\tether@1.3.2.js'
    Line 2304: Sat, 14 May 2016 03:38:57 GMT wallaby:middleware ENOENT: no such file or directory, open 'C:\Users\dsmith\AppData\Local\Temp\.wallaby\projects\aBP5TbkUOB7Naualksxqh5N8QYw=\cache\instrumented\jspm_packages\npm\aurelia-event-aggregator@1.0.0-beta.1.2.0.js'
    Line 2305: Sat, 14 May 2016 03:38:57 GMT wallaby:middleware ENOENT: no such file or directory, open 'C:\Users\dsmith\AppData\Local\Temp\.wallaby\projects\aBP5TbkUOB7Naualksxqh5N8QYw=\cache\instrumented\jspm_packages\npm\aurelia-framework@1.0.0-beta.1.2.2.js'
    Line 2306: Sat, 14 May 2016 03:38:57 GMT wallaby:middleware ENOENT: no such file or directory, open 'C:\Users\dsmith\AppData\Local\Temp\.wallaby\projects\aBP5TbkUOB7Naualksxqh5N8QYw=\cache\instrumented\jspm_packages\github\CodeSeven\toastr@2.1.2.js'
    Line 2307: Sat, 14 May 2016 03:38:57 GMT wallaby:middleware ENOENT: no such file or directory, open 'C:\Users\dsmith\AppData\Local\Temp\.wallaby\projects\aBP5TbkUOB7Naualksxqh5N8QYw=\cache\instrumented\jspm_packages\npm\aurelia-binding@1.0.0-beta.1.3.4.js'
    Line 2310: Sat, 14 May 2016 03:38:57 GMT wallaby:middleware ENOENT: no such file or directory, open 'C:\Users\dsmith\AppData\Local\Temp\.wallaby\projects\aBP5TbkUOB7Naualksxqh5N8QYw=\cache\instrumented\utils\MultiObserver.js'
    Line 2322: Sat, 14 May 2016 03:38:57 GMT wallaby:middleware ENOENT: no such file or directory, open 'C:\Users\dsmith\AppData\Local\Temp\.wallaby\projects\aBP5TbkUOB7Naualksxqh5N8QYw=\cache\instrumented\jspm_packages\github\select2\select2@4.0.2.js'
    Line 2323: Sat, 14 May 2016 03:38:57 GMT wallaby:middleware ENOENT: no such file or directory, open 'C:\Users\dsmith\AppData\Local\Temp\.wallaby\projects\aBP5TbkUOB7Naualksxqh5N8QYw=\cache\instrumented\jspm_packages\github\systemjs\plugin-css@0.1.21.js'
    Line 2329: Sat, 14 May 2016 03:38:58 GMT wallaby:middleware ENOENT: no such file or directory, open 'C:\Users\dsmith\AppData\Local\Temp\.wallaby\projects\aBP5TbkUOB7Naualksxqh5N8QYw=\cache\instrumented\utils\Downloader.js'
    Line 2330: Sat, 14 May 2016 03:38:58 GMT wallaby:middleware ENOENT: no such file or directory, open 'C:\Users\dsmith\AppData\Local\Temp\.wallaby\projects\aBP5TbkUOB7Naualksxqh5N8QYw=\cache\instrumented\utils\validation\Assert.js'

wallaby.js

/* eslint-disable no-var, no-shadow, dot-notation */

module.exports = function (wallaby) {
    var compilerOptions = require('./build/babel-options').wallaby();
    wallaby.defaults.files.load = false;
    wallaby.defaults.tests.load = false;
    console.log("SOURCE MAP " + compilerOptions.sourceMap)
    return {
        files: [
            //included
            'src/**/*.js*',
            'src/**/*.html',
            'src/**/*.css',
            'test/data/*.js',
            'test/RouterStub.js',

            //excluded (ignore: true)
            '!src/**/*.test.js*',
            '!src/main.js',
            '!src/form/viewer/main.js',
            '!src/form/viewer/config.js',

            //pre loaded
            { pattern: 'wwwroot/jspm_packages/system.js', load: true, instrument: false },
            { pattern: 'wwwroot/jspm_packages/system-polyfills.js', load: true, instrument: false },
            { pattern: 'wwwroot/config.js', load: true, instrument: false },
            { pattern: 'test/test-main-karma.js', load: true, instrument: false },
        ],

        tests: [
          'src/**/*.test.js'
        ],

        compilers: {
            '**/*.js': wallaby.compilers.babel(compilerOptions)
        },

        middleware: (app, express) => {
            var dirPath = express.static(require('path').join(__dirname, 'wwwroot', 'jspm_packages'));
            console.log(dirPath + '   ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ');
            app.use('wwwroot/jspm_packages', dirPath);
        },

        bootstrap: function (wallaby) {
            var promises = [];
            var i = 0;
            var len = wallaby.tests.length;
            console.log("fooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo");
            wallaby.delayStart();

            System.config({
                paths: {
                    "*": "*",
                    'testData/*': 'test/data/*',
                    //'github:*': 'wwwroot/jspm_packages/github/*',
                    //'npm:*': 'wwwroot/jspm_packages/npm/*',

                    ////TODO: Not ideal to have to set each path, but necessary to get it to work for now.
                    //'api/*': 'src/api/*',
                    //'bindings/*': 'src/bindings/*',
                    //'cache/*': 'src/cache/*',
                    //'factories/*': 'src/factories/*',
                    //'flow/*': 'src/flow/*',
                    //'form/*': 'src/form/*',
                    //'models/*': 'src/models/*',
                    //'resources/*': 'src/resources/*',
                    //'routeConfigs/*': 'src/routeConfigs/*',
                    //'selfService/*': 'src/selfService/*',
                    //'utils/*': 'src/utils/*',
                    //'workspace/*': 'src/workspace/*',
                }
            });
            for (; i < len; i++) {
                promises.push(System['import'](wallaby.tests[i].replace(/\.js$/, '')));
            }

            Promise.all(promises).then(function () {
                console.log('ABOUT TO START whooo o o o o o oo  o o o o o oo  o o o o o oo  o o o o o oo  o o o o o oo  o o o o o oo  o o o o o oo  o o o o o oo ');
                wallaby.start();
            }).catch(function (e) { setTimeout(function () { throw e; }, 0); });
        },

        debug: true
    };
};

Thank you a gain for a great product. I'm really looking forward to wallaby's help with my code.

ArtemGovorov commented 8 years ago

I'll need a small sample (ideally GitHub repo) to be able to help you with the configuration.

Without seeing the full sample, my guess is that jspm packages are not mapped correctly in the middleware function. I'd try addinf the / and adding one more mapping (because the error says that /jspm_packages/* is requested):

...
app.use('/wwwroot/jspm_packages', dirPath);
app.use('/jspm_packages', dirPath);

This should hopefully fix missing module errors.

As for the missing source files errors, like

form\viewer\windowTools.js'
form\viewer\form.js'
form\viewer\autoSave\autoSave.js'
...

those are exact paths that your code requests via System.js from the webserver and it looks like files are not there. Most likely they are in src\form\viewer\... so you may need to configure System.js mappings. But I'm not sure what exactly is the issue without seeing a sample from you, because for example this project/config has a very similar structure to yours and it just works.

cResults commented 8 years ago

@ArtemGovorov thank you. Your response led us to be able to address many issues. A number of our team is using Atom and as a result quite a few files were checked into tfs, but not included in the project and apparently visual studio wallaby requires them to be in the project.

We do not have wallaby running on the entire solution. We trimmed it down to one file and its test file. Doing so revealed the following problem. image

Tests that pass when run by karma, failing in wallaby, but the wallaby console log works.

Here's a git repo with the files. You should only need to run npm and jspm install before running wallaby to see this issue. https://github.com/cResults/wallaby-jspm-bug

cResults commented 8 years ago

I just tried changing .toBeTrue to .toBeTruthy which leads me to believe that wallaby doesn't know about our use of jasmine-matchers. I know we have another solution where wallaby is working that uses jasmine-matchers. I'll take a look at that to see what we did.

If there is a recommend means of adding jasmine extensions, we appreciate the guidance.

cResults commented 8 years ago

adding the following seems to work
to files: [ { pattern: 'node_modules/jasmine-expect/dist/jasmine-matchers.js', load: true, instrument: false }, ]

ArtemGovorov commented 8 years ago

Thanks for the update!

and apparently visual studio wallaby requires them to be in the project.

Wallaby needs files to be included in the VS project only if you expect to get the code coverage for them. In case if you have some files that are not included in the project, and you don't need the code coverage for them, you may just map folders with those file to be served as is in your middleware function (just like you do for /wwwroot/jspm_packages).

Yes, loading the custom matchers: { pattern: 'node_modules/jasmine-expect/dist/jasmine-matchers.js', load: true, instrument: false }, is a correct way to do it. Wallaby only provides jasmine, so anything custom has to be loaded in a similar way. Looking into what's used in your karma config, you may need to do the same thing for jasmine-jquery.

Seems like after adding the jasmine-matchers.js your sample works. If you have any more issues, please update the repo and let me know, I'll jump in to have a look.