From d5949886f45937c344f31c8eb1256146a826d03e Mon Sep 17 00:00:00 2001 From: Amaury Martiny Date: Fri, 29 Jun 2018 17:30:32 +0200 Subject: [PATCH] Add basic tests --- packages/fether-react/package.json | 3 +- packages/fether-react/src/App/App.test.js | 16 ---------- packages/fether-react/src/stores/sendStore.js | 1 + .../fether-react/src/stores/sendStore.spec.js | 32 +++++++++++++++++++ .../src/utils/testHelpers/storeTests.js | 14 ++++++++ yarn.lock | 4 +++ 6 files changed, 53 insertions(+), 17 deletions(-) delete mode 100644 packages/fether-react/src/App/App.test.js create mode 100644 packages/fether-react/src/stores/sendStore.spec.js create mode 100644 packages/fether-react/src/utils/testHelpers/storeTests.js diff --git a/packages/fether-react/package.json b/packages/fether-react/package.json index 8915aad5..8cf42e8c 100644 --- a/packages/fether-react/package.json +++ b/packages/fether-react/package.json @@ -31,7 +31,7 @@ "start": "npm-run-all -p start-*", "start-css": "npm run build-css -- --watch --recursive", "start-js": "react-app-rewired start", - "test": "echo Skipped." + "test": "react-app-rewired test --env=jsdom" }, "dependencies": { "@parity/api": "^2.1.22", @@ -56,6 +56,7 @@ }, "devDependencies": { "babel-plugin-transform-decorators-legacy": "^1.3.5", + "capitalize": "^1.0.0", "node-sass": "^4.9.0", "node-sass-chokidar": "^1.2.2", "npm-run-all": "^4.1.2", diff --git a/packages/fether-react/src/App/App.test.js b/packages/fether-react/src/App/App.test.js deleted file mode 100644 index a858f91e..00000000 --- a/packages/fether-react/src/App/App.test.js +++ /dev/null @@ -1,16 +0,0 @@ -// Copyright 2015-2018 Parity Technologies (UK) Ltd. -// This file is part of Parity. -// -// SPDX-License-Identifier: BSD-3-Clause - -/* eslint-env mocha */ - -import React from 'react'; -import ReactDOM from 'react-dom'; -import App from './App'; - -it('renders without crashing', () => { - const div = document.createElement('div'); - ReactDOM.render(, div); - ReactDOM.unmountComponentAtNode(div); -}); diff --git a/packages/fether-react/src/stores/sendStore.js b/packages/fether-react/src/stores/sendStore.js index 76a0d48e..125255e6 100644 --- a/packages/fether-react/src/stores/sendStore.js +++ b/packages/fether-react/src/stores/sendStore.js @@ -175,6 +175,7 @@ class SendStore { @action setEstimated = estimated => { this.estimated = estimated.mul(GAS_MULT_FACTOR); + debug('Estimated gas.', +estimated); }; @action diff --git a/packages/fether-react/src/stores/sendStore.spec.js b/packages/fether-react/src/stores/sendStore.spec.js new file mode 100644 index 00000000..6051b93b --- /dev/null +++ b/packages/fether-react/src/stores/sendStore.spec.js @@ -0,0 +1,32 @@ +// Copyright 2015-2018 Parity Technologies (UK) Ltd. +// This file is part of Parity. +// +// SPDX-License-Identifier: BSD-3-Clause + +/* eslint-env jest */ + +import sendStore from './sendStore'; +import * as storeTests from '../utils/testHelpers/storeTests'; + +storeTests.setterTest(sendStore, 'blockNumber'); +storeTests.setterTest(sendStore, 'tokenAddress'); +storeTests.setterTest(sendStore, 'tx'); +storeTests.setterTest(sendStore, 'txStatus'); + +describe('@computed confirmations', () => { + test('return correct value if txStatus is not set', () => { + sendStore.setTxStatus(null); + expect(sendStore.confirmations).toBe(-1); + }); + + test('return correct value if txStatus is not `confirmed`', () => { + sendStore.setTxStatus({ estimating: true }); + expect(sendStore.confirmations).toBe(-1); + }); + + test('return correct value if txStatus is `confirmed`', () => { + sendStore.setBlockNumber(5); + sendStore.setTxStatus({ confirmed: { blockNumber: 4 } }); + expect(sendStore.confirmations).toBe(1); + }); +}); diff --git a/packages/fether-react/src/utils/testHelpers/storeTests.js b/packages/fether-react/src/utils/testHelpers/storeTests.js new file mode 100644 index 00000000..2affb215 --- /dev/null +++ b/packages/fether-react/src/utils/testHelpers/storeTests.js @@ -0,0 +1,14 @@ +// Copyright 2015-2018 Parity Technologies (UK) Ltd. +// This file is part of Parity. +// +// SPDX-License-Identifier: BSD-3-Clause + +/* eslint-env jest */ + +import capitalize from 'capitalize'; + +export const setterTest = (store, variableName) => + test(`should correctly set ${variableName}`, () => { + store[`set${capitalize(variableName)}`]('foo'); + expect(store[variableName]).toEqual('foo'); + }); diff --git a/yarn.lock b/yarn.lock index bdc3dfe2..90f7dd45 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2866,6 +2866,10 @@ caniuse-lite@^1.0.30000748, caniuse-lite@^1.0.30000792, caniuse-lite@^1.0.300008 version "1.0.30000858" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000858.tgz#f6f203a9128bac507136de1cf6cfd966d2df027c" +capitalize@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/capitalize/-/capitalize-1.0.0.tgz#dc802c580aee101929020d2ca14b4ca8a0ae44be" + capture-stack-trace@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz#4a6fa07399c26bba47f0b2496b4d0fb408c5550d" -- GitLab