describe(“ExceptionFormatter”, function() {
describe("#message", function() { it('formats Firefox exception messages', function() { var sampleFirefoxException = { fileName: 'foo.js', lineNumber: '1978', message: 'you got your foo in my bar', name: 'A Classic Mistake' }, exceptionFormatter = new j$.ExceptionFormatter(), message = exceptionFormatter.message(sampleFirefoxException); expect(message).toEqual('A Classic Mistake: you got your foo in my bar in foo.js (line 1978)'); }); it('formats Webkit exception messages', function() { var sampleWebkitException = { sourceURL: 'foo.js', line: '1978', message: 'you got your foo in my bar', name: 'A Classic Mistake' }, exceptionFormatter = new j$.ExceptionFormatter(), message = exceptionFormatter.message(sampleWebkitException); expect(message).toEqual('A Classic Mistake: you got your foo in my bar in foo.js (line 1978)'); }); it('formats V8 exception messages', function() { var sampleV8 = { message: 'you got your foo in my bar', name: 'A Classic Mistake' }, exceptionFormatter = new j$.ExceptionFormatter(), message = exceptionFormatter.message(sampleV8); expect(message).toEqual('A Classic Mistake: you got your foo in my bar'); }); it("formats thrown exceptions that aren't errors", function() { var thrown = "crazy error", exceptionFormatter = new j$.ExceptionFormatter(), message = exceptionFormatter.message(thrown); expect(message).toEqual("crazy error thrown"); }); }); describe("#stack", function() { it("formats stack traces from Webkit, Firefox, node.js or IE10+", function() { if (jasmine.getEnv().ieVersion < 10 || jasmine.getEnv().safariVersion < 6) { return; } var error; try { throw new Error("an error") } catch(e) { error = e; } expect(new j$.ExceptionFormatter().stack(error)).toMatch(/ExceptionFormatterSpec\.js.*\d+/) }); it("returns null if no Error provided", function() { expect(new j$.ExceptionFormatter().stack()).toBeNull(); }); });
});