Skip to content

Commit 722b4e1

Browse files
author
Eric Wendelin
committed
Deprecate JSTD in favor of Karma/Travis/Sauce.
1 parent 814a723 commit 722b4e1

15 files changed

+191
-194
lines changed

.gitignore

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,5 @@
1-
lib-cov
21
*.seed
32
*.log
4-
*.csv
5-
*.dat
63
*.out
74
*.pid
85
*.gz
@@ -13,5 +10,8 @@ results
1310

1411
node_modules
1512
bower_components
13+
coverage
1614

1715
.idea
16+
.coveralls.yml
17+

.npmignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
11
bower_components/
2+
node_modules/

.travis.yml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
language: node_js
2+
node_js:
3+
- 0.10
4+
script: make test-ci
5+
install:
6+
- npm install
7+
- npm install bower -g
8+
- bower install
9+
addons:
10+
sauce_connect: true
11+
env:
12+
global:
13+
- secure: hNvLoSVYWY+O2Oz5usb5+IFUMgWdM21xxZuCR4+qh1yJhlQYTaFANBDYJ5vhC74DbzLHRmy8ZUYa1G/4R4w8KXX9cCt6PFD2ETPpmZPJROHzoAoaYKahOAqdcMSVHn0BVKZCeAvPeLoBhvIfMJx4DOcRTTkKPzTJzg4ewzR/v3g=
14+
- secure: hnc8EGbHzAlz6lAfVoGSf47pecv7G/LxbDHCIN2jn23SgU9SdScY9LT9K0X69smFsdBmOSCWDRRqPgX859sS/tz3lGHW6lCRn3mqclCNVhFNM6Vd+dB4hwAEvJQXhtMAaxM5Bqop+8C8OQ4NdoHgSYcdEvMT0CaWU1ZFrpjiBs4=

Makefile

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,23 @@
1-
BROWSER_PATH="/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"
1+
BROWSERS=Firefox,ChromeCanary,Opera,Safari,PhantomJS
22

3-
deploy:
4-
npm publish
3+
test:
4+
@$(MAKE) lint
5+
@NODE_ENV=test ./node_modules/karma/bin/karma start --single-run --browsers $(BROWSERS)
6+
7+
lint:
8+
./node_modules/.bin/jshint ./spec/error-stack-parser-spec.js ./error-stack-parser.js
9+
10+
test-ci:
11+
$(MAKE) lint
12+
@echo TRAVIS_JOB_ID $(TRAVIS_JOB_ID)
13+
@NODE_ENV=test ./node_modules/karma/bin/karma start karma.conf.ci.js --single-run && \
14+
cat ./coverage/Chrome*/lcov.info | ./node_modules/coveralls/bin/coveralls.js --verbose
515

616
browser:
7-
open spec/SpecRunner.html
17+
open spec/spec-runner.html
818

919
phantom:
10-
/usr/bin/env DISPLAY=:1 phantomjs spec/lib/run-jasmine.js spec/SpecRunner.html
11-
12-
jstd:
13-
/usr/bin/env DISPLAY=:1 java -jar spec/JsTestDriver-1.3.5.jar --config spec/jsTestDriver.conf --browser ${BROWSER_PATH} --port 4224 --tests 'all' --testOutput './target'
20+
/usr/bin/env DISPLAY=:1 phantomjs spec/lib/run-jasmine.js spec/spec-runner.html
1421

1522
build: components
1623
@component build --dev
@@ -19,6 +26,6 @@ components: component.json
1926
@component install --dev
2027

2128
clean:
22-
rm -fr build components template.js
29+
rm -fr build coverage components template.js
2330

24-
.PHONY: clean
31+
.PHONY: clean test

bower.json

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,6 @@
1010
"dependencies": {
1111
"stackframe": "~0.1.0"
1212
},
13-
"devDependencies": {
14-
"jasmine": "~1.3.1",
15-
"jasmine-jstd-adapter": "~1.1.2"
16-
},
1713
"moduleType": [
1814
"amd",
1915
"globals",
@@ -25,7 +21,8 @@
2521
"backtrace",
2622
"cross-browser",
2723
"framework-agnostic",
28-
"error"
24+
"error",
25+
"debugger"
2926
],
3027
"license": "Public Domain",
3128
"ignore": [

error-stack-parser.js

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -41,11 +41,11 @@
4141
var locationParts = urlLike.split(':');
4242
var lastNumber = locationParts.pop();
4343
var possibleNumber = locationParts[locationParts.length - 1];
44-
if (possibleNumber != Number(possibleNumber)) {
45-
return [locationParts.join(':'), lastNumber, undefined];
46-
} else {
44+
if (!isNaN(parseFloat(possibleNumber)) && isFinite(possibleNumber)) {
4745
var lineNumber = locationParts.pop();
4846
return [locationParts.join(':'), lineNumber, lastNumber];
47+
} else {
48+
return [locationParts.join(':'), lastNumber, undefined];
4949
}
5050
};
5151

@@ -98,14 +98,14 @@
9898
};
9999

100100
this.parseOpera10a = function parseOpera10a(e) {
101-
var ANON = '{anonymous}', lineRE = /Line (\d+).*script (?:in )?(\S+)(?:: In function (\S+))?$/i;
102-
var lines = e.stacktrace.split('\n'), result = [];
101+
var lineRE = /Line (\d+).*script (?:in )?(\S+)(?:: In function (\S+))?$/i;
102+
var lines = e.stacktrace.split('\n');
103+
var result = [];
103104

104105
for (var i = 0, len = lines.length; i < len; i += 2) {
105106
var match = lineRE.exec(lines[i]);
106107
if (match) {
107-
var fnName = match[3] || ANON;
108-
result.push(fnName + '()@' + match[2] + ':' + match[1] + ' -- ' + lines[i + 1].replace(/^\s+/, ''));
108+
result.push(new StackFrame(match[3], undefined, match[2], match[1]));
109109
}
110110
}
111111

karma.conf.ci.js

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
module.exports = function (config) {
2+
if (!process.env.SAUCE_USERNAME || !process.env.SAUCE_ACCESS_KEY) {
3+
console.log('Make sure the SAUCE_USERNAME and SAUCE_ACCESS_KEY environment variables are set.');
4+
process.exit(1);
5+
}
6+
7+
// Check out https://saucelabs.com/platforms for all browser/platform combos
8+
var customLaunchers = {
9+
sl_chrome: {
10+
base: 'SauceLabs',
11+
browserName: 'chrome'
12+
},
13+
sl_firefox: {
14+
base: 'SauceLabs',
15+
browserName: 'firefox'
16+
},
17+
sl_ie_11: {
18+
base: 'SauceLabs',
19+
browserName: 'internet explorer',
20+
platform: 'Windows 8.1',
21+
version: '11'
22+
},
23+
sl_ie_9: {
24+
base: 'SauceLabs',
25+
browserName: 'internet explorer',
26+
platform: 'Windows 7',
27+
version: '9'
28+
}
29+
};
30+
31+
config.set({
32+
basePath: '',
33+
frameworks: ['jasmine'],
34+
files: [
35+
'bower_components/stackframe/stackframe.js',
36+
'error-stack-parser.js',
37+
'spec/captured-errors.js',
38+
'spec/spec-helper.js',
39+
'spec/*-spec.js'
40+
],
41+
exclude: [],
42+
port: 9876,
43+
colors: true,
44+
logLevel: config.LOG_INFO,
45+
autoWatch: true,
46+
browserDisconnectTimeout : 10000,
47+
browserDisconnectTolerance : 1,
48+
browserNoActivityTimeout : 240000,
49+
captureTimeout : 240000,
50+
sauceLabs: {
51+
testName: 'error-stack-parser unit tests',
52+
recordScreenshots: false,
53+
connectOptions: {
54+
port: 5757,
55+
logfile: 'sauce_connect.log'
56+
}
57+
},
58+
customLaunchers: customLaunchers,
59+
browsers: Object.keys(customLaunchers),
60+
reporters: ['progress', 'saucelabs', 'coverage'],
61+
preprocessors: {
62+
'error-stack-parser.js': 'coverage'
63+
},
64+
coverageReporter: {
65+
type: 'lcov',
66+
dir: 'coverage'
67+
},
68+
singleRun: true
69+
});
70+
};

karma.conf.js

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
module.exports = function (config) {
2+
config.set({
3+
basePath: '',
4+
frameworks: ['jasmine'],
5+
files: [
6+
'bower_components/stackframe/stackframe.js',
7+
'error-stack-parser.js',
8+
'spec/captured-errors.js',
9+
'spec/spec-helper.js',
10+
'spec/*-spec.js'
11+
],
12+
reporters: ['progress', 'coverage'],
13+
preprocessors: {
14+
'error-stack-parser.js': 'coverage'
15+
},
16+
coverageReporter: {
17+
type: 'lcov',
18+
dir: 'coverage'
19+
},
20+
port: 9876,
21+
colors: true,
22+
logLevel: config.LOG_INFO,
23+
autoWatch: true,
24+
// available browser launchers: https://npmjs.org/browse/keyword/karma-launcher
25+
browsers: ['Firefox', 'ChromeCanary', 'Opera', 'Safari', 'PhantomJS'],
26+
singleRun: false
27+
});
28+
};

package.json

Lines changed: 36 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,38 @@
11
{
2-
"name": "error-stack-parser",
3-
"description": "Extract meaning from JS Errors",
4-
"author": "Eric Wendelin <me@eriwen.com> (http://eriwen.com)",
5-
"version": "0.1.1",
6-
"keywords": ["stacktrace", "error"],
7-
"homepage": "http://www.stacktracejs.com",
8-
"dependencies": {
9-
"stackframe": "~0.1.0"
10-
},
11-
"repository": {
12-
"type": "git",
13-
"url": "git://github.com/stacktracejs/error-stack-parser.git"
14-
},
15-
"bugs": {
16-
"url": "https://github.com/stacktracejs/error-stack-parser/issues"
17-
},
18-
"licenses": [{
19-
"type": "Public Domain",
20-
"url": "https://github.com/stacktracejs/error-stack-parser/blob/master/LICENSE"
21-
}],
22-
"main": "./error-stack-parser.js",
23-
"scripts": {
24-
"test": "make jstd"
25-
}
2+
"name": "error-stack-parser",
3+
"description": "Extract meaning from JS Errors",
4+
"author": "Eric Wendelin <me@eriwen.com> (http://eriwen.com)",
5+
"version": "0.1.1",
6+
"keywords": ["stacktrace", "error"],
7+
"homepage": "http://www.stacktracejs.com",
8+
"dependencies": {
9+
"stackframe": "~0.1.0"
10+
},
11+
"repository": {
12+
"type": "git",
13+
"url": "git://github.com/stacktracejs/error-stack-parser.git"
14+
},
15+
"devDependencies": {
16+
"colors": "~1.0.3",
17+
"coveralls": "^2.11.2",
18+
"jshint": "^2.5.6",
19+
"karma": "~0.12",
20+
"karma-chrome-launcher": "^0.1.5",
21+
"karma-coverage": "^0.2.6",
22+
"karma-firefox-launcher": "^0.1.3",
23+
"karma-ie-launcher": "^0.1.5",
24+
"karma-jasmine": "^0.1.5",
25+
"karma-opera-launcher": "^0.1.0",
26+
"karma-phantomjs-launcher": "^0.1.4",
27+
"karma-safari-launcher": "^0.1.1",
28+
"karma-sauce-launcher": "^0.2.10"
29+
},
30+
"bugs": {
31+
"url": "https://github.com/stacktracejs/error-stack-parser/issues"
32+
},
33+
"licenses": [{
34+
"type": "Public Domain",
35+
"url": "https://github.com/stacktracejs/error-stack-parser/blob/master/LICENSE"
36+
}],
37+
"main": "./error-stack-parser.js"
2638
}

spec/JsTestDriver-1.3.5.jar

-4.12 MB
Binary file not shown.

0 commit comments

Comments
 (0)