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');
})
});