diff --git a/.gitignore b/.gitignore index 7c59d708..8cb6afaa 100644 --- a/.gitignore +++ b/.gitignore @@ -11,4 +11,5 @@ index.html *.sw* npm-debug.log src/__tests__/casperjs/screenshots/*.png +src/__tests__/casperjs/*.js-e diff --git a/src/__tests__/casperjs/casperUtils.js b/src/__tests__/casperjs/casperUtils.js index 063a2c3a..bbc7c3e9 100644 --- a/src/__tests__/casperjs/casperUtils.js +++ b/src/__tests__/casperjs/casperUtils.js @@ -10,6 +10,10 @@ var CasperUtils = { casper.echo('Error: ' + msg, 'ERROR'); casper.echo('Stack: ' + JSON.stringify(trace)); }); + casper.on('remote.error', function(msg) { + casper.echo('Console Warn: ' + msg, 'ERROR'); + }); + casper.options.logLevel ="debug"; casper.start(url, callback); return casper; @@ -106,6 +110,9 @@ var CasperUtils = { selectorContainsText: function(selector, text) { return function then() { this.test.assertEvalEquals(function(selector) { + if (!document.querySelector(selector)) { + return 'Query selector ' + selector + ' did not match!!'; + } return document.querySelector(selector).innerText .replace(/^\s+/g, '').replace(/\s+$/g, ''); }, diff --git a/src/__tests__/casperjs/command_history_test.js b/src/__tests__/casperjs/command_history_test.js index 7e8b5c97..d29325ce 100755 --- a/src/__tests__/casperjs/command_history_test.js +++ b/src/__tests__/casperjs/command_history_test.js @@ -1,6 +1,6 @@ var CasperUtils = require('./casperUtils').CasperUtils; -casper.start( +CasperUtils.start(casper, CasperUtils.getUrl(), function() { this.test.assertTitle('Learn Git Branching'); diff --git a/src/__tests__/casperjs/command_type_test.js b/src/__tests__/casperjs/command_type_test.js index 2d390cc0..c5b746d1 100755 --- a/src/__tests__/casperjs/command_type_test.js +++ b/src/__tests__/casperjs/command_type_test.js @@ -1,6 +1,6 @@ var CasperUtils = require('./casperUtils').CasperUtils; -casper.start( +CasperUtils.start(casper, CasperUtils.getUrl(), function() { this.test.assertTitle('Learn Git Branching'); diff --git a/src/__tests__/casperjs/helper_bar_intl_test.js b/src/__tests__/casperjs/helper_bar_intl_test.js index 34c46fbe..23c2d225 100755 --- a/src/__tests__/casperjs/helper_bar_intl_test.js +++ b/src/__tests__/casperjs/helper_bar_intl_test.js @@ -1,6 +1,6 @@ var CasperUtils = require('./casperUtils').CasperUtils; -casper.start( +CasperUtils.start(casper, CasperUtils.getUrl(), function() { diff --git a/src/__tests__/casperjs/level_dropdown_keyboard_test.js b/src/__tests__/casperjs/level_dropdown_keyboard_test.js index e4d9173d..51528870 100755 --- a/src/__tests__/casperjs/level_dropdown_keyboard_test.js +++ b/src/__tests__/casperjs/level_dropdown_keyboard_test.js @@ -1,6 +1,6 @@ var CasperUtils = require('./casperUtils').CasperUtils; -casper.start( +CasperUtils.start(casper, CasperUtils.getUrl(), function() { this.test.assertTitle('Learn Git Branching'); diff --git a/src/__tests__/casperjs/level_dropdown_page_keyboard_test.js b/src/__tests__/casperjs/level_dropdown_page_keyboard_test.js index 5aac0397..f354c65f 100755 --- a/src/__tests__/casperjs/level_dropdown_page_keyboard_test.js +++ b/src/__tests__/casperjs/level_dropdown_page_keyboard_test.js @@ -1,6 +1,6 @@ var CasperUtils = require('./casperUtils').CasperUtils; -casper.start( +CasperUtils.start(casper, CasperUtils.getUrl(), function() { this.test.assertTitle('Learn Git Branching'); @@ -51,7 +51,7 @@ casper.start( .then(function() { this.page.sendEvent('keypress', this.page.event.key.Enter); }) - .wait(1700) + .wait(700) .then(CasperUtils.screenshot.entirePage) .then(CasperUtils.asserts.selectorContainsText( 'div.levelNameWrapper', diff --git a/src/__tests__/casperjs/level_dropdown_test.js b/src/__tests__/casperjs/level_dropdown_test.js index 837c769b..2bed7dd0 100755 --- a/src/__tests__/casperjs/level_dropdown_test.js +++ b/src/__tests__/casperjs/level_dropdown_test.js @@ -23,7 +23,7 @@ var levelIconIDsForPages = function(start, end) { .reduce(flattenArray); }; -casper.start( +CasperUtils.start(casper, CasperUtils.getUrlForCommands([ 'levels', ]), diff --git a/src/__tests__/casperjs/level_objective_test.js b/src/__tests__/casperjs/level_objective_test.js index fdd08a7a..a57a4bc7 100755 --- a/src/__tests__/casperjs/level_objective_test.js +++ b/src/__tests__/casperjs/level_objective_test.js @@ -1,6 +1,6 @@ var CasperUtils = require('./casperUtils').CasperUtils; -casper.start( +CasperUtils.start(casper, CasperUtils.getUrlForCommands([ 'level intro1 --noIntroDialog --noStartCommand', ]), diff --git a/src/__tests__/casperjs/level_show_goal_test.js b/src/__tests__/casperjs/level_show_goal_test.js index 1cb20a80..94ca07ef 100755 --- a/src/__tests__/casperjs/level_show_goal_test.js +++ b/src/__tests__/casperjs/level_show_goal_test.js @@ -1,6 +1,6 @@ var CasperUtils = require('./casperUtils').CasperUtils; -casper.start( +CasperUtils.start(casper, CasperUtils.getUrlForCommands([ 'level intro1 --noIntroDialog --noStartCommand', ]), diff --git a/src/__tests__/casperjs/level_solved_test.js b/src/__tests__/casperjs/level_solved_test.js index 4ea037cb..54f67b9d 100755 --- a/src/__tests__/casperjs/level_solved_test.js +++ b/src/__tests__/casperjs/level_solved_test.js @@ -1,6 +1,6 @@ var CasperUtils = require('./casperUtils').CasperUtils; -casper.start( +CasperUtils.start(casper, CasperUtils.getUrlForCommands([ 'level intro1 --noIntroDialog --noStartCommand', 'show goal', diff --git a/src/__tests__/casperjs/locale_comand_test.js b/src/__tests__/casperjs/locale_comand_test.js index e91b8412..92346ee3 100755 --- a/src/__tests__/casperjs/locale_comand_test.js +++ b/src/__tests__/casperjs/locale_comand_test.js @@ -1,6 +1,6 @@ var CasperUtils = require('./casperUtils').CasperUtils; -casper.start( +CasperUtils.start(casper, CasperUtils.getUrlForCommands([ 'locale fr_FR', ]), diff --git a/src/__tests__/casperjs/locale_header_test.js b/src/__tests__/casperjs/locale_header_test.js index f2959146..c6aedeb4 100755 --- a/src/__tests__/casperjs/locale_header_test.js +++ b/src/__tests__/casperjs/locale_header_test.js @@ -21,7 +21,7 @@ var headerLocaleMap = { 'pt-BR': 'pt_BR' }; -casper.start( +CasperUtils.start(casper, CasperUtils.getUrl(), function() { this.test.assertTitle('Learn Git Branching'); diff --git a/src/__tests__/casperjs/locale_uri_param_test.js b/src/__tests__/casperjs/locale_uri_param_test.js index f0b9c9ce..36f8e8a8 100755 --- a/src/__tests__/casperjs/locale_uri_param_test.js +++ b/src/__tests__/casperjs/locale_uri_param_test.js @@ -1,6 +1,6 @@ var CasperUtils = require('./casperUtils').CasperUtils; -casper.start( +CasperUtils.start(casper, CasperUtils.getUrlWithQueryParams({ locale: 'fr_FR', }), diff --git a/src/__tests__/casperjs/pageload_test.js b/src/__tests__/casperjs/pageload_test.js index 6a97a56e..eac8d796 100755 --- a/src/__tests__/casperjs/pageload_test.js +++ b/src/__tests__/casperjs/pageload_test.js @@ -1,6 +1,6 @@ var CasperUtils = require('./casperUtils').CasperUtils; -casper.start( +CasperUtils.start(casper, CasperUtils.getUrlForCommands([ 'git commit', ]), diff --git a/src/js/react_views/CommandView.jsx b/src/js/react_views/CommandView.jsx index c101212f..cd440e52 100644 --- a/src/js/react_views/CommandView.jsx +++ b/src/js/react_views/CommandView.jsx @@ -28,6 +28,15 @@ var CommandView = React.createClass({ }, onModelDestroy: function() { + if (!this.isMounted()) { + return; + } + if (!this.getDOMNode) { + // WTF -- only happens in casperjs tests weirdly + console.error('this.getDOMNode not a function?'); + return; + } + React.unmountComponentAtNode(this.getDOMNode().parentNode); }, diff --git a/src/template.index.html b/src/template.index.html index 9c41eabf..856a1417 100644 --- a/src/template.index.html +++ b/src/template.index.html @@ -94,9 +94,6 @@ - {{jsDependencies}} - - + {{jsDependencies}} + + +