diff --git a/package-lock.json b/package-lock.json index 165cfa995..d4132ebcf 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16517,7 +16517,7 @@ }, "@polymer/test-fixture": { "version": "0.0.3", - "resolved": "http://registry.npmjs.org/@polymer/test-fixture/-/test-fixture-0.0.3.tgz", + "resolved": "https://registry.npmjs.org/@polymer/test-fixture/-/test-fixture-0.0.3.tgz", "integrity": "sha1-REN1JpfU2Sk7vEEuoLXk00HxSdk=", "dev": true }, @@ -25619,7 +25619,7 @@ }, "depd": { "version": "1.0.1", - "resolved": "http://registry.npmjs.org/depd/-/depd-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.0.1.tgz", "integrity": "sha1-gK7GTJ1tl+ZcwqnKqTwKpqv3Oqo=", "dev": true }, @@ -25936,7 +25936,7 @@ }, "lodash": { "version": "3.10.1", - "resolved": "http://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=", "dev": true }, @@ -25969,7 +25969,7 @@ }, "ms": { "version": "0.7.0", - "resolved": "http://registry.npmjs.org/ms/-/ms-0.7.0.tgz", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.0.tgz", "integrity": "sha1-hlvpTC5zl62KV9pqYzpuLzB5i4M=", "dev": true }, @@ -26018,7 +26018,7 @@ "dependencies": { "debug": { "version": "2.1.3", - "resolved": "http://registry.npmjs.org/debug/-/debug-2.1.3.tgz", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.1.3.tgz", "integrity": "sha1-zoqxte6PvuK/o7Yzyrk9NmtjQY4=", "dev": true, "requires": { diff --git a/src/actions/updateCertificateDefinition.js b/src/actions/updateCertificateDefinition.js index d6c377104..9e5d6253e 100644 --- a/src/actions/updateCertificateDefinition.js +++ b/src/actions/updateCertificateDefinition.js @@ -20,7 +20,9 @@ export default function updateCertificateDefinition (definition) { domain.events.dispatch(CERTIFICATE_EVENTS.CERTIFICATE_LOAD, certificateDefinition); - await dispatch(autoVerify()); + if (certificateDefinition != null) { + await dispatch(autoVerify()); + } }; } @@ -28,7 +30,7 @@ function autoVerify () { return async function (dispatch, getState) { if (!getDisableAutoVerify(getState())) { dispatch({ - type: 'AUTO_VERIFY' + type: ACTIONS.AUTO_VERIFY }); await dispatch(verifyCertificate()); } diff --git a/src/constants/actionTypes.js b/src/constants/actionTypes.js index 9dd94e123..e6f16ca94 100644 --- a/src/constants/actionTypes.js +++ b/src/constants/actionTypes.js @@ -1,3 +1,4 @@ +export const AUTO_VERIFY = 'AUTO_VERIFY'; export const INITIALIZE = 'INITIALIZE'; export const UPDATE_CERTIFICATE_DEFINITION = 'UPDATE_CERTIFICATE_DEFINITION'; export const UPLOAD_CERTIFICATE_DEFINITION = 'UPLOAD_CERTIFICATE_DEFINITION'; diff --git a/test/application/actions/updateCertificateDefinition.spec.js b/test/application/actions/updateCertificateDefinition.spec.js index 5bd12ab16..4a8324da3 100644 --- a/test/application/actions/updateCertificateDefinition.spec.js +++ b/test/application/actions/updateCertificateDefinition.spec.js @@ -14,22 +14,27 @@ import notACertificateDefinition from '../../fixtures/not-a-certificate-definiti import initialValidCertificateStepsAssertions from '../../assertions/initialValidCertificateSteps'; import validCertificateSteps from '../../assertions/validCertificateSteps'; import validCertificate from '../../assertions/validCertificate'; +import { getVerificationHasStarted } from '../../../src/selectors/verification'; jest.mock('../../../src/helpers/stepQueue'); describe('updateCertificateDefinition action creator test suite', function () { - let store; + describe('given it is dispatched with a certificate definition', function () { + let store; - beforeEach(function () { - const initialState = getInitialState({ disableAutoVerify: true }); - store = configureStore(initialState); - }); + beforeEach(function () { + // for convenience we avoid triggering to whole verification process automatically + const apiConfiguration = { + disableAutoVerify: true + }; + const initialState = getInitialState(apiConfiguration); + store = configureStore(initialState); + }); - afterEach(function () { - store = null; - }); + afterEach(function () { + store = null; + }); - describe('given it is dispatched with a certificate definition', function () { it('should set the certificate definition in the state', async function () { await store.dispatch(updateCertificateDefinition(certificateFixture)); const state = store.getState(); @@ -62,12 +67,6 @@ describe('updateCertificateDefinition action creator test suite', function () { }); it('should set the transactionLink in the state', async function () { - const apiConfiguration = { - disableAutoVerify: true - }; - const initialState = getInitialState(apiConfiguration); - const store = configureStore(initialState); - await store.dispatch(updateCertificateDefinition(certificateFixture)); const state = store.getState(); @@ -76,12 +75,6 @@ describe('updateCertificateDefinition action creator test suite', function () { }); it('should set the chain of the certificate in the state', async function () { - const apiConfiguration = { - disableAutoVerify: true - }; - const initialState = getInitialState(apiConfiguration); - const store = configureStore(initialState); - await store.dispatch(updateCertificateDefinition(certificateFixture)); const state = store.getState(); @@ -121,6 +114,17 @@ describe('updateCertificateDefinition action creator test suite', function () { }); describe('given it is dispatched with a non-valid certificate definition', function () { + let store; + + beforeEach(function () { + const initialState = getInitialState(); + store = configureStore(initialState); + }); + + afterEach(function () { + store = null; + }); + it('should not set the definition in the state', async function () { await store.dispatch(updateCertificateDefinition(notACertificateDefinition)); const state = store.getState(); @@ -134,5 +138,12 @@ describe('updateCertificateDefinition action creator test suite', function () { expect(getErrorMessage(state)).toBe('Not a valid Blockcerts definition.'); }); + + it('should not start the verification process', async function () { + await store.dispatch(updateCertificateDefinition(notACertificateDefinition)); + const state = store.getState(); + + expect(getVerificationHasStarted(state)).toBe(false); + }); }); });