rocjs / roc-plugin-test-mocha-karma-webpack

Adds a way to easily test Webpack projects in Roc
MIT License
2 stars 1 forks source link

Seing minified production code when expecting debug build #7

Closed jacob414 closed 8 years ago

jacob414 commented 8 years ago

Hello,

I have gotten further with my evaluation of Roc & this plugin, but now I have run into another problem: (Wise from previous takes), I check out a fresh copy of my lab-repo:

  $ git clone https://github.com/Plexical/roc-0.git
  # ..git output..
  $ cd roc-0
  [..]eo/roc-0$ npm i
  # ..lots of NPM output..
  [..]eo/roc-0$ roc test --test-src-path app/ --watch
  # ..test runner running, watching, example test runs without errors..

I then open up the generated URL (http://localhost:9876/ in this case), and follows the 'Debug' link in the upper right corner. A new tab opens up at http://localhost:9876/debug.html.

The test code looks normal, and I can set breakpoints it as expected. But when I go looking for production code to set breakpoints there, I see minified sources:

In the 'Sources' tab, I follow the 'webpack://' tree until I find app/redux/clicker.js and now I'm at minified, unreadable source. Bug or am I doing something wrong?

dlmr commented 8 years ago

I assume you are seeing something like this.

"use strict";
var __cov_R4ZvXc8lHwlRbJb7tQrHHQ = (Function('return this'))();
if (!__cov_R4ZvXc8lHwlRbJb7tQrHHQ.__coverage__) { __cov_R4ZvXc8lHwlRbJb7tQrHHQ.__coverage__ = {}; }
__cov_R4ZvXc8lHwlRbJb7tQrHHQ = __cov_R4ZvXc8lHwlRbJb7tQrHHQ.__coverage__;
if (!(__cov_R4ZvXc8lHwlRbJb7tQrHHQ['.../app/redux/clicker.js'])) {
   __cov_R4ZvXc8lHwlRbJb7tQrHHQ['.../app/redux/clicker.js'] = {"path":".../app/redux/clicker.js","s":{"1":0,"2":0,"3":0,"4":0,"5":0,"6":1,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":1,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":1,"27":0},"b":{"1":[0,0],"2":[0,0],"3":[0,0],"4":[0,0],"5":[0,0],"6":[0,0],"7":[0,0],"8":[0,0],"9":[0,0],"10":[0,0,0]},"f":{"1":0,"2":0,"3":0},"fnMap":{"1":{"name":"_interopRequireWildcard","line":13,"loc":{"start":{"line":0,"column":0},"end":{"line":0,"column":0},"skip":true},"skip":true},"2":{"name":"clicker","line":19,"loc":{"start":{"line":7,"column":15},"end":{"line":7,"column":81}}},"3":{"name":"click","line":33,"loc":{"start":{"line":18,"column":7},"end":{"line":18,"column":33}}}},"statementMap":{"1":{"start":{"line":0,"column":0},"end":{"line":0,"column":0},"skip":true},"2":{"start":{"line":0,"column":0},"end":{"line":0,"column":0},"skip":true},"3":{"start":{"line":0,"column":0},"end":{"line":0,"column":0},"skip":true},"4":{"start":{"line":1,"column":0},"end":{"line":1,"column":0}},"5":{"start":{"line":0,"column":0},"end":{"line":0,"column":0},"skip":true},"6":{"start":{"line":0,"column":0},"end":{"line":0,"column":0},"skip":true},"7":{"start":{"line":0,"column":0},"end":{"line":0,"column":0},"skip":true},"8":{"start":{"line":0,"column":0},"end":{"line":0,"column":0},"skip":true},"9":{"start":{"line":0,"column":0},"end":{"line":0,"column":0},"skip":true},"10":{"start":{"line":0,"column":0},"end":{"line":0,"column":0},"skip":true},"11":{"start":{"line":0,"column":0},"end":{"line":0,"column":0},"skip":true},"12":{"start":{"line":0,"column":0},"end":{"line":0,"column":0},"skip":true},"13":{"start":{"line":0,"column":0},"end":{"line":0,"column":0},"skip":true},"14":{"start":{"line":0,"column":0},"end":{"line":0,"column":0},"skip":true},"15":{"start":{"line":0,"column":0},"end":{"line":0,"column":0},"skip":true},"16":{"start":{"line":3,"column":0},"end":{"line":3,"column":0}},"17":{"start":{"line":5,"column":0},"end":{"line":5,"column":0}},"18":{"start":{"line":7,"column":15},"end":{"line":16,"column":1}},"19":{"start":{"line":7,"column":81},"end":{"line":7,"column":81}},"20":{"start":{"line":7,"column":81},"end":{"line":7,"column":81}},"21":{"start":{"line":8,"column":2},"end":{"line":8,"column":2}},"22":{"start":{"line":9,"column":2},"end":{"line":13,"column":3}},"23":{"start":{"line":10,"column":4},"end":{"line":10,"column":4}},"24":{"start":{"line":12,"column":4},"end":{"line":12,"column":4}},"25":{"start":{"line":15,"column":2},"end":{"line":15,"column":2}},"26":{"start":{"line":18,"column":7},"end":{"line":20,"column":1}},"27":{"start":{"line":19,"column":2},"end":{"line":19,"column":2}}},"branchMap":{"1":{"line":13,"type":"if","locations":[{"start":{"line":0,"column":0},"end":{"line":0,"column":0},"skip":true},{"start":{"line":0,"column":0},"end":{"line":0,"column":0},"skip":true}]},"2":{"line":13,"type":"binary-expr","locations":[{"start":{"line":0,"column":0},"end":{"line":0,"column":0},"skip":true},{"start":{"line":0,"column":0},"end":{"line":0,"column":0},"skip":true}]},"3":{"line":13,"type":"if","locations":[{"start":{"line":0,"column":0},"end":{"line":0,"column":0},"skip":true},{"start":{"line":0,"column":0},"end":{"line":0,"column":0},"skip":true}]},"4":{"line":13,"type":"if","locations":[{"start":{"line":0,"column":0},"end":{"line":0,"column":0},"skip":true},{"start":{"line":0,"column":0},"end":{"line":0,"column":0},"skip":true}]},"5":{"line":20,"type":"cond-expr","locations":[{"start":{"line":7,"column":40},"end":{"line":7,"column":81}},{"start":{"line":7,"column":81},"end":{"line":7,"column":81}}]},"6":{"line":20,"type":"binary-expr","locations":[{"start":{"line":7,"column":81},"end":{"line":7,"column":81}},{"start":{"line":7,"column":81},"end":{"line":7,"column":81}}]},"7":{"line":21,"type":"cond-expr","locations":[{"start":{"line":7,"column":63},"end":{"line":7,"column":81}},{"start":{"line":7,"column":81},"end":{"line":7,"column":81}}]},"8":{"line":21,"type":"binary-expr","locations":[{"start":{"line":7,"column":81},"end":{"line":7,"column":81}},{"start":{"line":7,"column":81},"end":{"line":7,"column":81}}]},"9":{"line":24,"type":"if","locations":[{"start":{"line":9,"column":2},"end":{"line":9,"column":2}},{"start":{"line":9,"column":2},"end":{"line":9,"column":2}}]},"10":{"line":27,"type":"binary-expr","locations":[{"start":{"line":12,"column":13},"end":{"line":12,"column":13}},{"start":{"line":12,"column":36},"end":{"line":12,"column":13}},{"start":{"line":12,"column":45},"end":{"line":12,"column":4}}]}},"code":["import * as IM from 'immutable';","","const initialState = IM.Map({sum: 0})","","const CLICKED = 'CLICKED';","","export default function clicker(state = initialState, action = { increment: 1 }) {","  let result;","  if (action.type === CLICKED) {","    result = state.merge({sum: state.get('sum') + action.increment})","  } else {","    result = IM.Map.isMap(state) && state || IM.Map(state);","  }","","  return result;","}","","export function click(increment) {","  return { type: CLICKED, increment };","}",""]};
}
__cov_R4ZvXc8lHwlRbJb7tQrHHQ = __cov_R4ZvXc8lHwlRbJb7tQrHHQ['.../app/redux/clicker.js'];
__cov_R4ZvXc8lHwlRbJb7tQrHHQ.s['1']++;Object.defineProperty(exports,'__esModule',{value:true});__cov_R4ZvXc8lHwlRbJb7tQrHHQ.s['2']++;exports.default=clicker;__cov_R4ZvXc8lHwlRbJb7tQrHHQ.s['3']++;exports.click=click;__cov_R4ZvXc8lHwlRbJb7tQrHHQ.s['4']++;var _immutable=require('immutable');__cov_R4ZvXc8lHwlRbJb7tQrHHQ.s['5']++;var IM=_interopRequireWildcard(_immutable);function _interopRequireWildcard(obj){__cov_R4ZvXc8lHwlRbJb7tQrHHQ.f['1']++;__cov_R4ZvXc8lHwlRbJb7tQrHHQ.s['7']++;if((__cov_R4ZvXc8lHwlRbJb7tQrHHQ.b['2'][0]++,obj)&&(__cov_R4ZvXc8lHwlRbJb7tQrHHQ.b['2'][1]++,obj.__esModule)){__cov_R4ZvXc8lHwlRbJb7tQrHHQ.b['1'][0]++;__cov_R4ZvXc8lHwlRbJb7tQrHHQ.s['8']++;return obj;}else{__cov_R4ZvXc8lHwlRbJb7tQrHHQ.b['1'][1]++;__cov_R4ZvXc8lHwlRbJb7tQrHHQ.s['9']++;var newObj={};__cov_R4ZvXc8lHwlRbJb7tQrHHQ.s['10']++;if(obj!=null){__cov_R4ZvXc8lHwlRbJb7tQrHHQ.b['3'][0]++;__cov_R4ZvXc8lHwlRbJb7tQrHHQ.s['11']++;for(var key in obj){__cov_R4ZvXc8lHwlRbJb7tQrHHQ.s['12']++;if(Object.prototype.hasOwnProperty.call(obj,key)){__cov_R4ZvXc8lHwlRbJb7tQrHHQ.b['4'][0]++;__cov_R4ZvXc8lHwlRbJb7tQrHHQ.s['13']++;newObj[key]=obj[key];}else{__cov_R4ZvXc8lHwlRbJb7tQrHHQ.b['4'][1]++;}}}else{__cov_R4ZvXc8lHwlRbJb7tQrHHQ.b['3'][1]++;}__cov_R4ZvXc8lHwlRbJb7tQrHHQ.s['14']++;newObj.default=obj;__cov_R4ZvXc8lHwlRbJb7tQrHHQ.s['15']++;return newObj;}}__cov_R4ZvXc8lHwlRbJb7tQrHHQ.s['16']++;var initialState=IM.Map({sum:0});__cov_R4ZvXc8lHwlRbJb7tQrHHQ.s['17']++;var CLICKED='CLICKED';function clicker(){__cov_R4ZvXc8lHwlRbJb7tQrHHQ.f['2']++;__cov_R4ZvXc8lHwlRbJb7tQrHHQ.s['19']++;var state=(__cov_R4ZvXc8lHwlRbJb7tQrHHQ.b['6'][0]++,arguments.length<=0)||(__cov_R4ZvXc8lHwlRbJb7tQrHHQ.b['6'][1]++,arguments[0]===undefined)?(__cov_R4ZvXc8lHwlRbJb7tQrHHQ.b['5'][0]++,initialState):(__cov_R4ZvXc8lHwlRbJb7tQrHHQ.b['5'][1]++,arguments[0]);__cov_R4ZvXc8lHwlRbJb7tQrHHQ.s['20']++;var action=(__cov_R4ZvXc8lHwlRbJb7tQrHHQ.b['8'][0]++,arguments.length<=1)||(__cov_R4ZvXc8lHwlRbJb7tQrHHQ.b['8'][1]++,arguments[1]===undefined)?(__cov_R4ZvXc8lHwlRbJb7tQrHHQ.b['7'][0]++,{increment:1}):(__cov_R4ZvXc8lHwlRbJb7tQrHHQ.b['7'][1]++,arguments[1]);__cov_R4ZvXc8lHwlRbJb7tQrHHQ.s['21']++;var result=void 0;__cov_R4ZvXc8lHwlRbJb7tQrHHQ.s['22']++;if(action.type===CLICKED){__cov_R4ZvXc8lHwlRbJb7tQrHHQ.b['9'][0]++;__cov_R4ZvXc8lHwlRbJb7tQrHHQ.s['23']++;result=state.merge({sum:state.get('sum')+action.increment});}else{__cov_R4ZvXc8lHwlRbJb7tQrHHQ.b['9'][1]++;__cov_R4ZvXc8lHwlRbJb7tQrHHQ.s['24']++;result=(__cov_R4ZvXc8lHwlRbJb7tQrHHQ.b['10'][0]++,IM.Map.isMap(state))&&(__cov_R4ZvXc8lHwlRbJb7tQrHHQ.b['10'][1]++,state)||(__cov_R4ZvXc8lHwlRbJb7tQrHHQ.b['10'][2]++,IM.Map(state));}__cov_R4ZvXc8lHwlRbJb7tQrHHQ.s['25']++;return result;}function click(increment){__cov_R4ZvXc8lHwlRbJb7tQrHHQ.f['3']++;__cov_R4ZvXc8lHwlRbJb7tQrHHQ.s['27']++;return{type:CLICKED,increment:increment};}

What you are seeing is the code that has been altered by iSparta to provide a way to generate coverage for it. Currently we will always generate coverage for the test code but I can see that it might be useful to disable it sometimes, especially when running in --watch mode. I have created #8 that mentions this as a new feature. In the meantime you will have to test the code "manually" using the dev mode.

Tip: When using Chrome you can press CTRL/CMD+O to search for a file. With this you can instantly find for instance app/redux/clicker.js.