From 43f897ae1601118fec08f807892fa4fdc6c464b4 Mon Sep 17 00:00:00 2001 From: boryslevytskyi Date: Sat, 27 May 2017 13:58:11 +0300 Subject: [PATCH] Fix unit test --- src/app/components/DisplayResultView.jsx | 28 +++++++----------------- src/app/expression.js | 2 ++ src/app/expression/Operand.js | 2 +- tests/unit/hashSpec.js | 22 ++----------------- tests/unit/operandSpec.js | 8 +++---- 5 files changed, 17 insertions(+), 45 deletions(-) diff --git a/src/app/components/DisplayResultView.jsx b/src/app/components/DisplayResultView.jsx index 72c1943..6508e09 100644 --- a/src/app/components/DisplayResultView.jsx +++ b/src/app/components/DisplayResultView.jsx @@ -9,7 +9,7 @@ import ExpressionResultView from './results/ExpressionResultView'; import WhatsnewResult from '../models/WhatsnewResult'; import WhatsnewResultView from './results/WhatsnewResultView'; import ErrorResult from '../models/ErrorResult'; -import expression from '../../expression'; +import * as expression from '../expression'; export default class DisplayResult extends React.Component { render() { @@ -22,18 +22,6 @@ export default class DisplayResult extends React.Component { ; } - renderUnknown() { - return
-
¯\_(ツ)_/¯ Sorry, i don′t know what {this.props.input} is
-
- } - - renderError(message) { - return
-
(X_X) Error occurred: {message}
-
- } - findResultComponent(result) { if(result instanceof HelpResult) { return @@ -51,14 +39,14 @@ export default class DisplayResult extends React.Component { return } - if (result instanceof expression.ExpressionError) { - return this.renderError(result.message); + if (result instanceof ErrorResult) { + return
+
(X_X) Ooops.. Something ain' right: {result.error.message}
+
} - if (result instanceof Error) { - return this.renderError(result.message); - } - - return this.renderUnknown(); + return
+
¯\_(ツ)_/¯ Sorry, i don′t know what {this.props.input} is
+
} } \ No newline at end of file diff --git a/src/app/expression.js b/src/app/expression.js index 1b78fcc..5c3786f 100644 --- a/src/app/expression.js +++ b/src/app/expression.js @@ -1,4 +1,6 @@ import Operand from './expression/operand'; +export { default as Operand } from './expression/operand'; +export { default as ExpressionError } from './expression/ExpressionError'; var expression = { factories:[], diff --git a/src/app/expression/Operand.js b/src/app/expression/Operand.js index 4f86cb9..ab74189 100644 --- a/src/app/expression/Operand.js +++ b/src/app/expression/Operand.js @@ -72,7 +72,7 @@ export default class Operand { var parsed = numberParser.parse(input); if(!parsed) { - throw new ExpressionError("Unknown number: " + input); + throw new ExpressionError(input + " is not a valid number"); } return new Operand(parsed); diff --git a/tests/unit/hashSpec.js b/tests/unit/hashSpec.js index 93c0401..3ace81c 100644 --- a/tests/unit/hashSpec.js +++ b/tests/unit/hashSpec.js @@ -30,28 +30,10 @@ describe('hash arguments parser', function() { expect(args.commands).toEqual(['clear', '16 15', '16&15']); }); - it('should parse multiple commands url encoded', function() { - var args = hash.getArgs('#' + encodeURI('1|2||1^2||~2')); - expect(args).not.toBe(null); - expect(args).toBeDefined(); - expect(args.commands).toEqual(['1|2', '1^2', '~2']); - }); - - it('should parse multiple commands and switcher encoded', function() { + it('should parse multiple commands encoded', function() { var args = hash.getArgs('#' + encodeURI('1|2||1^2||~2||-notrack||-debug')); expect(args).not.toBe(null); expect(args).toBeDefined(); - expect(args.commands).toEqual(['1|2', '1^2', '~2']); - expect(args.notrack).toBe(true); - expect(args.debug).toBe(true); - }); - - it('should parse only switchers encoded', function() { - var args = hash.getArgs('#' + encodeURI('-notrack||-debug')); - expect(args).not.toBe(null); - expect(args).toBeDefined(); - expect(args.commands).toEqual([]); - expect(args.notrack).toBe(true); - expect(args.debug).toBe(true); + expect(args.commands).toEqual(['1|2', '1^2', '~2','-notrack','-debug']); }); }); \ No newline at end of file diff --git a/tests/unit/operandSpec.js b/tests/unit/operandSpec.js index 95d4989..ccaa39e 100644 --- a/tests/unit/operandSpec.js +++ b/tests/unit/operandSpec.js @@ -4,15 +4,15 @@ var parser = expression.parser; describe("operand", function() { it("should be able to create opearand from positive binary string", function() { var input = "0b10"; - var op = new expression.Operand(input); + var op = new expression.Operand.parse(input); expect(op.value).toBe(2); - expect(op.kind).toBe('dec'); + expect(op.kind).toBe('bin'); }); it("should be able to create opearand from negative binary string", function() { var input = "-0b10"; - var op = new expression.Operand(input); + var op = new expression.Operand.parse(input); expect(op.value).toBe(-2); - expect(op.kind).toBe('dec'); + expect(op.kind).toBe('bin'); }) });