[ARVADOS-WORKBENCH2] updated: 1.4.1-101-g707b8482
Git user
git at public.curoverse.com
Fri Nov 15 20:40:04 UTC 2019
Summary of changes:
package.json | 2 +
src/services/auth-service/auth-service.ts | 5 +-
src/services/services.ts | 5 +-
src/store/auth/auth-action.test.ts | 174 ++++++++++++++++--------------
src/store/auth/auth-action.ts | 4 +-
src/store/auth/auth-reducer.test.ts | 2 +-
yarn.lock | 87 ++++++++++++++-
7 files changed, 194 insertions(+), 85 deletions(-)
via 707b848245596bd4f25d497b45c1c3e501785ee4 (commit)
via 818c47686e619fbdc3bfa11edd290d0c9e0db64b (commit)
from 72c6b63b58e7b583c6e9f638c1a4be8e8ce69e89 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
commit 707b848245596bd4f25d497b45c1c3e501785ee4
Author: Peter Amstutz <pamstutz at veritasgenetics.com>
Date: Fri Nov 15 15:39:14 2019 -0500
15803: Update test
Uses axios mocking and typescript module mocking.
diff --git a/package.json b/package.json
index a4ea3b19..6a56d826 100644
--- a/package.json
+++ b/package.json
@@ -54,6 +54,8 @@
"redux-thunk": "2.3.0",
"reselect": "4.0.0",
"shell-quote": "1.6.1",
+ "sinon": "7.3",
+ "ts-mock-imports": "1.2.6",
"tslint-etc": "1.6.0",
"unionize": "2.1.2",
"uuid": "3.3.2",
diff --git a/src/services/auth-service/auth-service.ts b/src/services/auth-service/auth-service.ts
index 2562dc6a..63cdd08c 100644
--- a/src/services/auth-service/auth-service.ts
+++ b/src/services/auth-service/auth-service.ts
@@ -43,7 +43,10 @@ export class AuthService {
public saveApiToken(token: string) {
localStorage.setItem(API_TOKEN_KEY, token);
- localStorage.setItem(HOME_CLUSTER, token.split('/')[1].substr(0, 5));
+ const sp = token.split('/');
+ if (sp.length == 3) {
+ localStorage.setItem(HOME_CLUSTER, sp[1].substr(0, 5));
+ }
}
public removeApiToken() {
diff --git a/src/store/auth/auth-action.test.ts b/src/store/auth/auth-action.test.ts
index b0449c0a..48f06d95 100644
--- a/src/store/auth/auth-action.test.ts
+++ b/src/store/auth/auth-action.test.ts
@@ -4,18 +4,7 @@
import { authReducer, AuthState } from "./auth-reducer";
import { AuthAction, initAuth } from "./auth-action";
-import {
- API_TOKEN_KEY,
- USER_EMAIL_KEY,
- USER_FIRST_NAME_KEY,
- USER_LAST_NAME_KEY,
- USER_OWNER_UUID_KEY,
- USER_UUID_KEY,
- USER_IS_ADMIN,
- USER_IS_ACTIVE,
- USER_USERNAME,
- USER_PREFS
-} from "~/services/auth-service/auth-service";
+import { API_TOKEN_KEY } from "~/services/auth-service/auth-service";
import 'jest-localstorage-mock';
import { ServiceRepository, createServices } from "~/services/services";
@@ -26,11 +15,12 @@ import { ApiActions } from "~/services/api/api-actions";
import { ACCOUNT_LINK_STATUS_KEY } from '~/services/link-account-service/link-account-service';
import axios from "axios";
import MockAdapter from "axios-mock-adapter";
+import { ImportMock } from 'ts-mock-imports';
+import * as servicesModule from "~/services/services";
describe('auth-actions', () => {
const axiosMock = new MockAdapter(axios);
- let reducer: (state: AuthState | undefined, action: AuthAction) => any;
let store: RootStore;
let services: ServiceRepository;
const actions: ApiActions = {
@@ -43,10 +33,9 @@ describe('auth-actions', () => {
services = createServices(mockConfig({}), actions, axios);
store = configureStore(createBrowserHistory(), services);
localStorage.clear();
- reducer = authReducer(services);
});
- it('should initialise state with user and api token from local storage', () => {
+ it('should initialise state with user and api token from local storage', (done) => {
axiosMock
.onGet("/users/current")
@@ -55,13 +44,15 @@ describe('auth-actions', () => {
first_name: "John",
last_name: "Doe",
uuid: "zzzzz-tpzed-abcefg",
- ownerUuid: "ownerUuid",
+ owner_uuid: "ownerUuid",
is_admin: false,
is_active: true,
username: "jdoe",
prefs: {}
});
+ ImportMock.mockFunction(servicesModule, 'createServices', services);
+
// Only test the case when a link account operation is not being cancelled
sessionStorage.setItem(ACCOUNT_LINK_STATUS_KEY, "0");
localStorage.setItem(API_TOKEN_KEY, "token");
@@ -74,62 +65,77 @@ describe('auth-actions', () => {
store.dispatch(initAuth(config));
- expect(store.getState().auth).toEqual({
- apiToken: "token",
- sshKeys: [],
- homeCluster: "zzzzz",
- localCluster: "zzzzz",
- loginCluster: undefined,
- remoteHostsConfig: {
- "zzzzz": {
- "remoteHosts": {
- "xc59z": "xc59z.arvadosapi.com",
- },
- "rootUrl": "https://zzzzz.arvadosapi.com",
- "uuidPrefix": "zzzzz",
- },
- },
- remoteHosts: {
- zzzzz: "zzzzz.arvadosapi.com",
- xc59z: "xc59z.arvadosapi.com"
- },
- sessions: [{
- "active": true,
- "baseUrl": undefined,
- "clusterId": "zzzzz",
- "email": "test at test.com",
- "loggedIn": true,
- "remoteHost": "https://zzzzz.arvadosapi.com",
- "status": 2,
- "token": "token",
- "name": "John Doe"
- "uuid": "zzzzz-tpzed-abcefg",
- }, {
- "active": false,
- "baseUrl": "",
- "clusterId": "xc59z",
- "email": "",
- "loggedIn": false,
- "remoteHost": "xc59z.arvadosapi.com",
- "status": 1,
- "token": "",
- "name": "",
- "uuid": "",
- }],
- user: {
- email: "test at test.com",
- firstName: "John",
- lastName: "Doe",
- uuid: "zzzzz-tpzed-abcefg",
- ownerUuid: "ownerUuid",
- username: "jdoe",
- prefs: {},
- isAdmin: false,
- isActive: true
+ store.subscribe(() => {
+ const auth = store.getState().auth;
+ if (auth.apiToken === "token" &&
+ auth.sessions.length === 2 &&
+ auth.sessions[0].status === 2 &&
+ auth.sessions[1].status === 2
+ ) {
+ try {
+ expect(auth).toEqual({
+ apiToken: "token",
+ sshKeys: [],
+ homeCluster: "zzzzz",
+ localCluster: "zzzzz",
+ loginCluster: undefined,
+ remoteHostsConfig: {
+ "zzzzz": {
+ "remoteHosts": {
+ "xc59z": "xc59z.arvadosapi.com",
+ },
+ "rootUrl": "https://zzzzz.arvadosapi.com",
+ "uuidPrefix": "zzzzz",
+ },
+ },
+ remoteHosts: {
+ zzzzz: "zzzzz.arvadosapi.com",
+ xc59z: "xc59z.arvadosapi.com"
+ },
+ sessions: [{
+ "active": true,
+ "baseUrl": undefined,
+ "clusterId": "zzzzz",
+ "email": "test at test.com",
+ "loggedIn": true,
+ "remoteHost": "https://zzzzz.arvadosapi.com",
+ "status": 2,
+ "token": "token",
+ "name": "John Doe"
+ "uuid": "zzzzz-tpzed-abcefg",
+ }, {
+ "active": false,
+ "baseUrl": "",
+ "clusterId": "xc59z",
+ "email": "",
+ "loggedIn": false,
+ "remoteHost": "xc59z.arvadosapi.com",
+ "status": 2,
+ "token": "",
+ "name": "",
+ "uuid": "",
+ }],
+ user: {
+ email: "test at test.com",
+ firstName: "John",
+ lastName: "Doe",
+ uuid: "zzzzz-tpzed-abcefg",
+ ownerUuid: "ownerUuid",
+ username: "jdoe",
+ prefs: { profile: {} },
+ isAdmin: false,
+ isActive: true
+ }
+ });
+ done();
+ } catch (e) {
+ console.log(e);
+ }
}
});
});
+
// TODO: Add remaining action tests
/*
it('should fire external url to login', () => {
diff --git a/yarn.lock b/yarn.lock
index 1e718dab..948b7fa6 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -73,6 +73,35 @@
dependencies:
esquery "^1.0.1"
+"@sinonjs/commons@^1", "@sinonjs/commons@^1.3.0", "@sinonjs/commons@^1.4.0":
+ version "1.6.0"
+ resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.6.0.tgz#ec7670432ae9c8eb710400d112c201a362d83393"
+ integrity sha512-w4/WHG7C4WWFyE5geCieFJF6MZkbW4VAriol5KlmQXpAQdxvV0p26sqNZOW6Qyw6Y0l9K4g+cHvvczR2sEEpqg==
+ dependencies:
+ type-detect "4.0.8"
+
+"@sinonjs/formatio@^3.2.1":
+ version "3.2.2"
+ resolved "https://registry.yarnpkg.com/@sinonjs/formatio/-/formatio-3.2.2.tgz#771c60dfa75ea7f2d68e3b94c7e888a78781372c"
+ integrity sha512-B8SEsgd8gArBLMD6zpRw3juQ2FVSsmdd7qlevyDqzS9WTCtvF55/gAL+h6gue8ZvPYcdiPdvueM/qm//9XzyTQ==
+ dependencies:
+ "@sinonjs/commons" "^1"
+ "@sinonjs/samsam" "^3.1.0"
+
+"@sinonjs/samsam@^3.1.0", "@sinonjs/samsam@^3.3.1":
+ version "3.3.3"
+ resolved "https://registry.yarnpkg.com/@sinonjs/samsam/-/samsam-3.3.3.tgz#46682efd9967b259b81136b9f120fd54585feb4a"
+ integrity sha512-bKCMKZvWIjYD0BLGnNrxVuw4dkWCYsLqFOUWw8VgKF/+5Y+mE7LfHWPIYoDXowH+3a9LsWDMo0uAP8YDosPvHQ==
+ dependencies:
+ "@sinonjs/commons" "^1.3.0"
+ array-from "^2.1.1"
+ lodash "^4.17.15"
+
+"@sinonjs/text-encoding@^0.7.1":
+ version "0.7.1"
+ resolved "https://registry.yarnpkg.com/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz#8da5c6530915653f3a1f38fd5f101d8c3f8079c5"
+ integrity sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ==
+
"@types/cheerio@*":
version "0.22.9"
resolved "https://registry.yarnpkg.com/@types/cheerio/-/cheerio-0.22.9.tgz#b5990152604c2ada749b7f88cab3476f21f39d7b"
@@ -474,6 +503,11 @@ array-flatten@^2.1.0:
version "2.1.1"
resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.1.tgz#426bb9da84090c1838d812c8150af20a8331e296"
+array-from@^2.1.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/array-from/-/array-from-2.1.1.tgz#cfe9d8c26628b9dc5aecc62a9f5d8f1f352c1195"
+ integrity sha1-z+nYwmYoudxa7MYqn12PHzUsEZU=
+
array-includes@^3.0.3:
version "3.0.3"
resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.0.3.tgz#184b48f62d92d7452bb31b323165c7f8bd02266d"
@@ -2416,7 +2450,7 @@ detect-port-alt at 1.1.6:
address "^1.0.1"
debug "^2.6.0"
-diff@^3.2.0:
+diff@^3.2.0, diff@^3.5.0:
version "3.5.0"
resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12"
@@ -4924,6 +4958,11 @@ jszip at 3.1.5:
pako "~1.0.2"
readable-stream "~2.0.6"
+just-extend@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/just-extend/-/just-extend-4.0.2.tgz#f3f47f7dfca0f989c55410a7ebc8854b07108afc"
+ integrity sha512-FrLwOgm+iXrPV+5zDU6Jqu4gCRXbWEQg2O3SKONsWE4w7AXFRkryS53bpWdaL9cNol+AmR3AEYz6kn+o0fCPnw==
+
keycode@^2.1.9:
version "2.2.0"
resolved "https://registry.yarnpkg.com/keycode/-/keycode-2.2.0.tgz#3d0af56dc7b8b8e5cba8d0a97f107204eec22b04"
@@ -5154,6 +5193,11 @@ lodash at 4.17.13:
version "4.17.11"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d"
+lodash@^4.17.15:
+ version "4.17.15"
+ resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548"
+ integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==
+
log-symbols@^2.1.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-2.2.0.tgz#5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a"
@@ -5173,6 +5217,11 @@ loglevelnext@^1.0.1:
es6-symbol "^3.1.1"
object.assign "^4.1.0"
+lolex@^4.0.1, lolex@^4.1.0:
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/lolex/-/lolex-4.2.0.tgz#ddbd7f6213ca1ea5826901ab1222b65d714b3cd7"
+ integrity sha512-gKO5uExCXvSm6zbF562EvM+rd1kQDnB9AZBbiQVzf1ZmdDpxUSvpnAaVOP83N/31mRK8Ml8/VE8DMvsAZQ+7wg==
+
longest@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097"
@@ -5546,6 +5595,17 @@ next-tick at 1:
version "1.0.0"
resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c"
+nise@^1.4.10:
+ version "1.5.2"
+ resolved "https://registry.yarnpkg.com/nise/-/nise-1.5.2.tgz#b6d29af10e48b321b307e10e065199338eeb2652"
+ integrity sha512-/6RhOUlicRCbE9s+94qCUsyE+pKlVJ5AhIv+jEE7ESKwnbXqulKZ1FYU+XAtHHWE9TinYvAxDUJAb912PwPoWA==
+ dependencies:
+ "@sinonjs/formatio" "^3.2.1"
+ "@sinonjs/text-encoding" "^0.7.1"
+ just-extend "^4.0.2"
+ lolex "^4.1.0"
+ path-to-regexp "^1.7.0"
+
no-case@^2.2.0:
version "2.3.2"
resolved "https://registry.yarnpkg.com/no-case/-/no-case-2.3.2.tgz#60b813396be39b3f1288a4c1ed5d1e7d28b464ac"
@@ -7600,6 +7660,19 @@ signal-exit@^3.0.0, signal-exit@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d"
+sinon at 7.3:
+ version "7.3.2"
+ resolved "https://registry.yarnpkg.com/sinon/-/sinon-7.3.2.tgz#82dba3a6d85f6d2181e1eca2c10d8657c2161f28"
+ integrity sha512-thErC1z64BeyGiPvF8aoSg0LEnptSaWE7YhdWWbWXgelOyThent7uKOnnEh9zBxDbKixtr5dEko+ws1sZMuFMA==
+ dependencies:
+ "@sinonjs/commons" "^1.4.0"
+ "@sinonjs/formatio" "^3.2.1"
+ "@sinonjs/samsam" "^3.3.1"
+ diff "^3.5.0"
+ lolex "^4.0.1"
+ nise "^1.4.10"
+ supports-color "^5.5.0"
+
slash@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55"
@@ -7959,7 +8032,7 @@ supports-color@^4.2.1:
dependencies:
has-flag "^2.0.0"
-supports-color@^5.1.0, supports-color@^5.3.0, supports-color@^5.4.0:
+supports-color@^5.1.0, supports-color@^5.3.0, supports-color@^5.4.0, supports-color@^5.5.0:
version "5.5.0"
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
dependencies:
@@ -8203,6 +8276,11 @@ ts-loader@^2.3.7:
loader-utils "^1.0.2"
semver "^5.0.1"
+ts-mock-imports at 1.2.6:
+ version "1.2.6"
+ resolved "https://registry.yarnpkg.com/ts-mock-imports/-/ts-mock-imports-1.2.6.tgz#5a98a398c3eadb7f75b6904984bb0ba5f3fbb912"
+ integrity sha512-rZjsIEBWx9a3RGUo4Rhj/hzEGB4GPWJx46fls9EJf4UBsf5SxS2qiozf6dQp0Ym/9LC5MArlXZbZ+93wJzAmjA==
+
tsconfig-paths-webpack-plugin@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/tsconfig-paths-webpack-plugin/-/tsconfig-paths-webpack-plugin-2.0.0.tgz#7652dc684bb3206c8e7e446831ca01cbf4d11772"
@@ -8299,6 +8377,11 @@ type-check@~0.3.2:
dependencies:
prelude-ls "~1.1.2"
+type-detect at 4.0.8:
+ version "4.0.8"
+ resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c"
+ integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==
+
type-is@~1.6.16:
version "1.6.16"
resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.16.tgz#f89ce341541c672b25ee7ae3c73dee3b2be50194"
commit 818c47686e619fbdc3bfa11edd290d0c9e0db64b
Author: Peter Amstutz <pamstutz at veritasgenetics.com>
Date: Thu Nov 14 17:47:15 2019 -0500
15803: Updating tests WIP
diff --git a/src/services/services.ts b/src/services/services.ts
index 89b3d0ff..af547dec 100644
--- a/src/services/services.ts
+++ b/src/services/services.ts
@@ -3,6 +3,7 @@
// SPDX-License-Identifier: AGPL-3.0
import Axios from "axios";
+import { AxiosInstance } from "axios";
import { ApiClientAuthorizationService } from '~/services/api-client-authorization-service/api-client-authorization-service';
import { AuthService } from "./auth-service/auth-service";
import { GroupsService } from "./groups-service/groups-service";
@@ -49,12 +50,12 @@ export function removeAuthorizationHeader(services: ServiceRepository) {
delete services.webdavClient.defaults.headers.common;
}
-export const createServices = (config: Config, actions: ApiActions) => {
+export const createServices = (config: Config, actions: ApiActions, useApiClient?: AxiosInstance) => {
// Need to give empty 'headers' object or it will create an
// instance with a reference to the global default headers object,
// which is very bad because that means setAuthorizationHeader
// would update the global default instead of the instance default.
- const apiClient = Axios.create({ headers: {} });
+ const apiClient = useApiClient || Axios.create({ headers: {} });
apiClient.defaults.baseURL = config.baseUrl;
const webdavClient = new WebDAV();
diff --git a/src/store/auth/auth-action.test.ts b/src/store/auth/auth-action.test.ts
index a543fc18..b0449c0a 100644
--- a/src/store/auth/auth-action.test.ts
+++ b/src/store/auth/auth-action.test.ts
@@ -18,41 +18,53 @@ import {
} from "~/services/auth-service/auth-service";
import 'jest-localstorage-mock';
-import { createServices } from "~/services/services";
+import { ServiceRepository, createServices } from "~/services/services";
import { configureStore, RootStore } from "../store";
import createBrowserHistory from "history/createBrowserHistory";
import { mockConfig } from '~/common/config';
import { ApiActions } from "~/services/api/api-actions";
import { ACCOUNT_LINK_STATUS_KEY } from '~/services/link-account-service/link-account-service';
+import axios from "axios";
+import MockAdapter from "axios-mock-adapter";
describe('auth-actions', () => {
+ const axiosMock = new MockAdapter(axios);
+
let reducer: (state: AuthState | undefined, action: AuthAction) => any;
let store: RootStore;
+ let services: ServiceRepository;
const actions: ApiActions = {
progressFn: (id: string, working: boolean) => { },
errorFn: (id: string, message: string) => { }
};
beforeEach(() => {
- store = configureStore(createBrowserHistory(), createServices(mockConfig({}), actions));
+ axiosMock.reset();
+ services = createServices(mockConfig({}), actions, axios);
+ store = configureStore(createBrowserHistory(), services);
localStorage.clear();
- reducer = authReducer(createServices(mockConfig({}), actions));
+ reducer = authReducer(services);
});
it('should initialise state with user and api token from local storage', () => {
+ axiosMock
+ .onGet("/users/current")
+ .reply(200, {
+ email: "test at test.com",
+ first_name: "John",
+ last_name: "Doe",
+ uuid: "zzzzz-tpzed-abcefg",
+ ownerUuid: "ownerUuid",
+ is_admin: false,
+ is_active: true,
+ username: "jdoe",
+ prefs: {}
+ });
+
// Only test the case when a link account operation is not being cancelled
sessionStorage.setItem(ACCOUNT_LINK_STATUS_KEY, "0");
localStorage.setItem(API_TOKEN_KEY, "token");
- localStorage.setItem(USER_EMAIL_KEY, "test at test.com");
- localStorage.setItem(USER_FIRST_NAME_KEY, "John");
- localStorage.setItem(USER_LAST_NAME_KEY, "Doe");
- localStorage.setItem(USER_UUID_KEY, "zzzzz-tpzed-abcefg");
- localStorage.setItem(USER_USERNAME, "username");
- localStorage.setItem(USER_PREFS, JSON.stringify({}));
- localStorage.setItem(USER_OWNER_UUID_KEY, "ownerUuid");
- localStorage.setItem(USER_IS_ADMIN, JSON.stringify(false));
- localStorage.setItem(USER_IS_ACTIVE, JSON.stringify(true));
const config: any = {
rootUrl: "https://zzzzz.arvadosapi.com",
@@ -110,7 +122,7 @@ describe('auth-actions', () => {
lastName: "Doe",
uuid: "zzzzz-tpzed-abcefg",
ownerUuid: "ownerUuid",
- username: "username",
+ username: "jdoe",
prefs: {},
isAdmin: false,
isActive: true
diff --git a/src/store/auth/auth-action.ts b/src/store/auth/auth-action.ts
index 41245751..8fb5c5e9 100644
--- a/src/store/auth/auth-action.ts
+++ b/src/store/auth/auth-action.ts
@@ -59,7 +59,9 @@ const init = (config: Config) => (dispatch: Dispatch, getState: () => RootState,
if (token && token !== "undefined") {
dispatch(progressIndicatorActions.START_WORKING(WORKBENCH_LOADING_SCREEN));
- dispatch<any>(saveApiToken(token)).finally(() => {
+ dispatch<any>(saveApiToken(token)).then(() => {
+ dispatch(progressIndicatorActions.STOP_WORKING(WORKBENCH_LOADING_SCREEN));
+ }).catch(() => {
dispatch(progressIndicatorActions.STOP_WORKING(WORKBENCH_LOADING_SCREEN));
});
}
diff --git a/src/store/auth/auth-reducer.test.ts b/src/store/auth/auth-reducer.test.ts
index 30bee3bc..e862a313 100644
--- a/src/store/auth/auth-reducer.test.ts
+++ b/src/store/auth/auth-reducer.test.ts
@@ -69,7 +69,7 @@ describe('auth-reducer', () => {
apiToken: undefined,
sshKeys: [],
sessions: [],
- homeCluster: "",
+ homeCluster: "uuid",
localCluster: "",
loginCluster: "",
remoteHosts: {},
-----------------------------------------------------------------------
hooks/post-receive
--
More information about the arvados-commits
mailing list