diff --git a/web/satellite/package-lock.json b/web/satellite/package-lock.json index 663a89c6f..c0136d203 100644 --- a/web/satellite/package-lock.json +++ b/web/satellite/package-lock.json @@ -2857,9 +2857,9 @@ }, "dependencies": { "@types/node": { - "version": "14.10.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.10.1.tgz", - "integrity": "sha512-aYNbO+FZ/3KGeQCEkNhHFRIzBOUgc7QvcVNKXbfnhDkSfwUv91JsQQa10rDgKSTSLkXZ1UIyPe4FJJNVgw1xWQ==" + "version": "14.10.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.10.2.tgz", + "integrity": "sha512-IzMhbDYCpv26pC2wboJ4MMOa9GKtjplXfcAqrMeNJpUUwpM/2ATt2w1JPUXwS6spu856TvKZL2AOmeU2rAxskw==" } } }, @@ -6562,9 +6562,9 @@ "dev": true }, "electron-to-chromium": { - "version": "1.3.568", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.568.tgz", - "integrity": "sha512-j9MlEwgTHVW/lq93Hw8yhzA886oLjDm3Hz7eDkWP2v4fzLVuqOWhpNluziSnmR/tBqgoYldagbLknrdg+B7Tlw==", + "version": "1.3.570", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.570.tgz", + "integrity": "sha512-Y6OCoVQgFQBP5py6A/06+yWxUZHDlNr/gNDGatjH8AZqXl8X0tE4LfjLJsXGz/JmWJz8a6K7bR1k+QzZ+k//fg==", "dev": true }, "elliptic": { @@ -9930,9 +9930,9 @@ "dev": true }, "klona": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.3.tgz", - "integrity": "sha512-CgPOT3ZadDpXxKcfV56lEQ9OQSZ42Mk26gnozI+uN/k39vzD8toUhRQoqsX0m9Q3eMPEfsLWmtyUpK/yqST4yg==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.4.tgz", + "integrity": "sha512-ZRbnvdg/NxqzC7L9Uyqzf4psi1OM4Cuc+sJAkQPjO6XkQIJTNbfK2Rsmbw8fx1p2mkZdp2FZYo2+LwXYY/uwIA==", "dev": true }, "known-css-properties": { @@ -10891,9 +10891,9 @@ "dev": true }, "node-forge": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.9.0.tgz", - "integrity": "sha512-7ASaDa3pD+lJ3WvXFsxekJQelBKRpne+GOVbLbtHYdd7pFspyeuJHnWfLplGf3SwKGbfs/aYl5V/JCIaHVUKKQ==", + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz", + "integrity": "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==", "dev": true }, "node-gyp": { @@ -13617,12 +13617,12 @@ "dev": true }, "selfsigned": { - "version": "1.10.7", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.7.tgz", - "integrity": "sha512-8M3wBCzeWIJnQfl43IKwOmC4H/RAp50S8DF60znzjW5GVqTcSe2vWclt7hmYVPkKPlHWOu5EaWOMZ2Y6W8ZXTA==", + "version": "1.10.8", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.8.tgz", + "integrity": "sha512-2P4PtieJeEwVgTU9QEcwIRDQ/mXJLX8/+I3ur+Pg16nS8oNbrGxEso9NyYWy8NAmXiNl4dlAp5MwoNeCWzON4w==", "dev": true, "requires": { - "node-forge": "0.9.0" + "node-forge": "^0.10.0" } }, "semver": { @@ -14615,9 +14615,9 @@ }, "dependencies": { "@types/node": { - "version": "14.10.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.10.1.tgz", - "integrity": "sha512-aYNbO+FZ/3KGeQCEkNhHFRIzBOUgc7QvcVNKXbfnhDkSfwUv91JsQQa10rDgKSTSLkXZ1UIyPe4FJJNVgw1xWQ==" + "version": "14.10.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.10.2.tgz", + "integrity": "sha512-IzMhbDYCpv26pC2wboJ4MMOa9GKtjplXfcAqrMeNJpUUwpM/2ATt2w1JPUXwS6spu856TvKZL2AOmeU2rAxskw==" } } }, diff --git a/web/satellite/src/api/projects.ts b/web/satellite/src/api/projects.ts index 4b0c0e505..9475862e5 100644 --- a/web/satellite/src/api/projects.ts +++ b/web/satellite/src/api/projects.ts @@ -3,7 +3,7 @@ import { BaseGql } from '@/api/baseGql'; import { ErrorUnauthorized } from '@/api/errors/ErrorUnauthorized'; -import { CreateProjectFields, Project, ProjectLimits, ProjectsApi } from '@/types/projects'; +import { Project, ProjectFields, ProjectLimits, ProjectsApi } from '@/types/projects'; import { HttpClient } from '@/utils/httpClient'; export class ProjectsApiGql extends BaseGql implements ProjectsApi { @@ -13,10 +13,10 @@ export class ProjectsApiGql extends BaseGql implements ProjectsApi { /** * Creates project. * - * @param createProjectFields - contains project information + * @param projectFields - contains project information * @throws Error */ - public async create(createProjectFields: CreateProjectFields): Promise { + public async create(projectFields: ProjectFields): Promise { const query = `mutation($name: String!, $description: String!) { createProject( @@ -28,13 +28,13 @@ export class ProjectsApiGql extends BaseGql implements ProjectsApi { }`; const variables = { - name: createProjectFields.name, - description: createProjectFields.description, + name: projectFields.name, + description: projectFields.description, }; const response = await this.mutate(query, variables); - return new Project(response.data.createProject.id, variables.name, variables.description, '', createProjectFields.ownerId); + return new Project(response.data.createProject.id, variables.name, variables.description, '', projectFields.ownerId); } /** diff --git a/web/satellite/src/components/account/ChangePasswordPopup.vue b/web/satellite/src/components/account/ChangePasswordPopup.vue index e0b82553a..717258894 100644 --- a/web/satellite/src/components/account/ChangePasswordPopup.vue +++ b/web/satellite/src/components/account/ChangePasswordPopup.vue @@ -53,7 +53,7 @@ width="205px" height="48px" :on-press="onCloseClick" - is-white="true" + is-transparent="true" /> diff --git a/web/satellite/src/components/common/VButton.vue b/web/satellite/src/components/common/VButton.vue index 51a114391..5b4d1044b 100644 --- a/web/satellite/src/components/common/VButton.vue +++ b/web/satellite/src/components/common/VButton.vue @@ -28,6 +28,8 @@ export default class VButton extends Vue { @Prop({default: false}) private readonly isWhite: boolean; @Prop({default: false}) + private readonly isTransparent: boolean; + @Prop({default: false}) private readonly isDeletion: boolean; @Prop({default: false}) private readonly isBlueWhite: boolean; @@ -45,6 +47,8 @@ export default class VButton extends Vue { if (this.isWhite) return 'container white'; + if (this.isTransparent) return 'container transparent'; + if (this.isDeletion) return 'container red'; if (this.isBlueWhite) return 'container blue-white'; @@ -55,7 +59,7 @@ export default class VButton extends Vue { diff --git a/web/satellite/src/components/navigation/NavigationArea.vue b/web/satellite/src/components/navigation/NavigationArea.vue index 4cc6b0e40..46979e8a4 100644 --- a/web/satellite/src/components/navigation/NavigationArea.vue +++ b/web/satellite/src/components/navigation/NavigationArea.vue @@ -3,6 +3,7 @@ + + + + diff --git a/web/satellite/src/components/project/ProjectDashboard.vue b/web/satellite/src/components/project/ProjectDashboard.vue index 3b86d2b7f..1489106b6 100644 --- a/web/satellite/src/components/project/ProjectDashboard.vue +++ b/web/satellite/src/components/project/ProjectDashboard.vue @@ -14,7 +14,6 @@ Request Limit Increase -> - @@ -24,7 +23,6 @@ import { Component, Vue } from 'vue-property-decorator'; import BucketArea from '@/components/project/buckets/BucketArea.vue'; -import ProjectDetails from '@/components/project/ProjectDetails.vue'; import ProjectUsage from '@/components/project/usage/ProjectUsage.vue'; import { RouteConfig } from '@/router'; @@ -35,7 +33,6 @@ import { MetaUtils } from '@/utils/meta'; @Component({ components: { BucketArea, - ProjectDetails, ProjectUsage, }, }) diff --git a/web/satellite/src/components/project/ProjectDetails.vue b/web/satellite/src/components/project/ProjectDetails.vue deleted file mode 100644 index 90cee9833..000000000 --- a/web/satellite/src/components/project/ProjectDetails.vue +++ /dev/null @@ -1,208 +0,0 @@ -// Copyright (C) 2020 Storj Labs, Inc. -// See LICENSE for copying information. - - - - - - diff --git a/web/satellite/src/components/team/AddUserPopup.vue b/web/satellite/src/components/team/AddUserPopup.vue index 464a72e38..1f0c69271 100644 --- a/web/satellite/src/components/team/AddUserPopup.vue +++ b/web/satellite/src/components/team/AddUserPopup.vue @@ -46,7 +46,7 @@ width='205px' height='48px' :on-press="onClose" - is-white="true" + is-transparent="true" /> {{selectedProjectMembersCount}} users selected @@ -58,7 +58,7 @@ label="Cancel" width="122px" height="48px" - is-white="true" + is-transparent="true" :on-press="onClearSelection" /> diff --git a/web/satellite/src/router/index.ts b/web/satellite/src/router/index.ts index 730b382aa..184c216ee 100644 --- a/web/satellite/src/router/index.ts +++ b/web/satellite/src/router/index.ts @@ -13,6 +13,7 @@ import ApiKeysArea from '@/components/apiKeys/ApiKeysArea.vue'; import Page404 from '@/components/errors/Page404.vue'; import OnboardingTourArea from '@/components/onboardingTour/OnboardingTourArea.vue'; import CreateProject from '@/components/project/CreateProject.vue'; +import EditProjectDetails from '@/components/project/EditProjectDetails.vue'; import ProjectDashboard from '@/components/project/ProjectDashboard.vue'; import ProjectMembersArea from '@/components/team/ProjectMembersArea.vue'; @@ -40,6 +41,7 @@ export abstract class RouteConfig { public static ApiKeys = new NavigationLink('/api-keys', 'API Keys'); public static OnboardingTour = new NavigationLink('/onboarding-tour', 'Onboarding Tour'); public static CreateProject = new NavigationLink('/create-project', 'Create Project'); + public static EditProjectDetails = new NavigationLink('/edit-project-details', 'Edit Project Details'); // child paths public static Settings = new NavigationLink('settings', 'Settings'); @@ -158,6 +160,11 @@ export const router = new Router({ name: RouteConfig.CreateProject.name, component: CreateProject, }, + { + path: RouteConfig.EditProjectDetails.path, + name: RouteConfig.EditProjectDetails.name, + component: EditProjectDetails, + }, ], }, { diff --git a/web/satellite/src/store/modules/projects.ts b/web/satellite/src/store/modules/projects.ts index e286eccc1..d5b67ade7 100644 --- a/web/satellite/src/store/modules/projects.ts +++ b/web/satellite/src/store/modules/projects.ts @@ -3,11 +3,10 @@ import { StoreModule } from '@/store'; import { - CreateProjectFields, Project, + ProjectFields, ProjectLimits, ProjectsApi, - UpdateProjectFields, } from '@/types/projects'; export const PROJECTS_ACTIONS = { @@ -101,10 +100,10 @@ export function makeProjectsModule(api: ProjectsApi): StoreModule state.selectedProject = selected; }, - [UPDATE_PROJECT_NAME](state: ProjectsState, fieldsToUpdate: UpdateProjectFields): void { + [UPDATE_PROJECT_NAME](state: ProjectsState, fieldsToUpdate: ProjectFields): void { state.selectedProject.name = fieldsToUpdate.name; }, - [UPDATE_PROJECT_DESCRIPTION](state: ProjectsState, fieldsToUpdate: UpdateProjectFields): void { + [UPDATE_PROJECT_DESCRIPTION](state: ProjectsState, fieldsToUpdate: ProjectFields): void { state.selectedProject.description = fieldsToUpdate.description; }, [REMOVE](state: ProjectsState, projectID: string): void { @@ -131,8 +130,8 @@ export function makeProjectsModule(api: ProjectsApi): StoreModule return projects; }, - [CREATE]: async function ({commit}: any, createProjectModel: CreateProjectFields): Promise { - const project = await api.create(createProjectModel); + [CREATE]: async function ({commit}: any, createProjectFields: ProjectFields): Promise { + const project = await api.create(createProjectFields); commit(ADD, project); @@ -141,12 +140,12 @@ export function makeProjectsModule(api: ProjectsApi): StoreModule [SELECT]: function ({commit}: any, projectID: string): void { commit(SELECT_PROJECT, projectID); }, - [UPDATE_NAME]: async function ({commit, state}: any, fieldsToUpdate: UpdateProjectFields): Promise { + [UPDATE_NAME]: async function ({commit, state}: any, fieldsToUpdate: ProjectFields): Promise { await api.update(state.selectedProject.id, fieldsToUpdate.name, state.selectedProject.description); commit(UPDATE_PROJECT_NAME, fieldsToUpdate); }, - [UPDATE_DESCRIPTION]: async function ({commit, state}: any, fieldsToUpdate: UpdateProjectFields): Promise { + [UPDATE_DESCRIPTION]: async function ({commit, state}: any, fieldsToUpdate: ProjectFields): Promise { await api.update(state.selectedProject.id, state.selectedProject.name, fieldsToUpdate.description); commit(UPDATE_PROJECT_DESCRIPTION, fieldsToUpdate); diff --git a/web/satellite/src/types/projects.ts b/web/satellite/src/types/projects.ts index 0a20fcead..f4c01f22b 100644 --- a/web/satellite/src/types/projects.ts +++ b/web/satellite/src/types/projects.ts @@ -11,7 +11,7 @@ export interface ProjectsApi { * @param createProjectFields - contains project information * @throws Error */ - create(createProjectFields: CreateProjectFields): Promise; + create(createProjectFields: ProjectFields): Promise; /** * Fetch projects. * @@ -46,6 +46,16 @@ export interface ProjectsApi { getLimits(projectId: string): Promise; } +/** + * MAX_NAME_LENGTH defines maximum amount of symbols for project name. + */ +export const MAX_NAME_LENGTH = 20; + +/** + * MAX_DESCRIPTION_LENGTH defines maximum amount of symbols for project description. + */ +export const MAX_DESCRIPTION_LENGTH = 100; + /** * Project is a type, used for creating new project in backend. */ @@ -61,21 +71,9 @@ export class Project { } /** - * UpdateProjectFields is a type, used for updating project name or description. + * ProjectFields is a type, used for creating and updating project. */ -export class UpdateProjectFields { - public constructor( - public name: string, - public description: string, - ) {} -} - -/** - * CreateProjectFields is a type, used for creating project. - */ -export class CreateProjectFields { - private readonly MAX_NAME_LENGTH = 20; - +export class ProjectFields { public constructor( public name: string = '', public description: string = '', @@ -105,7 +103,7 @@ export class CreateProjectFields { * nameHasLessThenTwentySymbols checks if project name has less then 20 symbols. */ private nameHasLessThenTwentySymbols(): void { - if (this.name.length > this.MAX_NAME_LENGTH) throw new Error('Name should be less than 21 character!'); + if (this.name.length > MAX_NAME_LENGTH) throw new Error('Name should be less than 21 character!'); } } diff --git a/web/satellite/static/images/navigation/dots.svg b/web/satellite/static/images/navigation/dots.svg new file mode 100644 index 000000000..df593fc2d --- /dev/null +++ b/web/satellite/static/images/navigation/dots.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/web/satellite/static/images/navigation/edit.svg b/web/satellite/static/images/navigation/edit.svg new file mode 100644 index 000000000..0dffd4ad7 --- /dev/null +++ b/web/satellite/static/images/navigation/edit.svg @@ -0,0 +1,3 @@ + + + diff --git a/web/satellite/tests/unit/mock/api/projects.ts b/web/satellite/tests/unit/mock/api/projects.ts index 0c97b3170..4826ee4f2 100644 --- a/web/satellite/tests/unit/mock/api/projects.ts +++ b/web/satellite/tests/unit/mock/api/projects.ts @@ -1,7 +1,7 @@ // Copyright (C) 2019 Storj Labs, Inc. // See LICENSE for copying information. -import { CreateProjectFields, Project, ProjectLimits, ProjectsApi } from '@/types/projects'; +import { Project, ProjectFields, ProjectLimits, ProjectsApi } from '@/types/projects'; /** * Mock for ProjectsApi @@ -18,7 +18,7 @@ export class ProjectsApiMock implements ProjectsApi { this.mockLimits = mockLimits; } - create(createProjectFields: CreateProjectFields): Promise { + create(createProjectFields: ProjectFields): Promise { throw new Error('not implemented'); } diff --git a/web/satellite/tests/unit/navigationArea/EditProjectDropdown.spec.ts b/web/satellite/tests/unit/navigationArea/EditProjectDropdown.spec.ts new file mode 100644 index 000000000..33b40b259 --- /dev/null +++ b/web/satellite/tests/unit/navigationArea/EditProjectDropdown.spec.ts @@ -0,0 +1,69 @@ +// Copyright (C) 2020 Storj Labs, Inc. +// See LICENSE for copying information. + +import { VNode } from 'vue'; +import { DirectiveBinding } from 'vue/types/options'; +import Vuex from 'vuex'; + +import EditProjectDropdown from '@/components/navigation/EditProjectDropdown.vue'; + +import { makeProjectsModule, PROJECTS_MUTATIONS } from '@/store/modules/projects'; +import { Project } from '@/types/projects'; +import { createLocalVue, mount } from '@vue/test-utils'; + +import { ProjectsApiMock } from '../mock/api/projects'; + +const localVue = createLocalVue(); +const projectsApi = new ProjectsApiMock(); +const projectsModule = makeProjectsModule(projectsApi); +const store = new Vuex.Store({ modules: { projectsModule }}); +const project = new Project('id', 'test', 'test', 'test', 'ownedId', false); + +let clickOutsideEvent: EventListener; + +localVue.directive('cli' + + 'ck-outside', { + bind: function (el: HTMLElement, binding: DirectiveBinding, vnode: VNode) { + clickOutsideEvent = function(event: Event): void { + if (el === event.target) { + return; + } + + if (vnode.context) { + vnode.context[binding.expression](event); + } + }; + + document.body.addEventListener('click', clickOutsideEvent); + }, + unbind: function(): void { + document.body.removeEventListener('click', clickOutsideEvent); + }, +}); + +localVue.use(Vuex); + +store.commit(PROJECTS_MUTATIONS.ADD, project); +store.commit(PROJECTS_MUTATIONS.SELECT_PROJECT, project.id); + +describe('EditProjectDropdown', () => { + it('renders correctly', (): void => { + const wrapper = mount(EditProjectDropdown, { + store, + localVue, + }); + + expect(wrapper).toMatchSnapshot(); + }); + + it('dropdown opens correctly', async (): Promise => { + const wrapper = mount(EditProjectDropdown, { + store, + localVue, + }); + + await wrapper.find('.edit-project__selection-area').trigger('click'); + + expect(wrapper).toMatchSnapshot(); + }); +}); diff --git a/web/satellite/tests/unit/navigationArea/__snapshots__/EditProjectDropdown.spec.ts.snap b/web/satellite/tests/unit/navigationArea/__snapshots__/EditProjectDropdown.spec.ts.snap new file mode 100644 index 000000000..2eb252f37 --- /dev/null +++ b/web/satellite/tests/unit/navigationArea/__snapshots__/EditProjectDropdown.spec.ts.snap @@ -0,0 +1,33 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`EditProjectDropdown dropdown opens correctly 1`] = ` +
+
+

test

+ + + + +
+
+
+ + +

Edit Details

+
+
+
+`; + +exports[`EditProjectDropdown renders correctly 1`] = ` +
+
+

test

+ + + + +
+ +
+`; diff --git a/web/satellite/tests/unit/navigationArea/__snapshots__/NavigationArea.spec.ts.snap b/web/satellite/tests/unit/navigationArea/__snapshots__/NavigationArea.spec.ts.snap index e759f29e9..23dc6b1d5 100644 --- a/web/satellite/tests/unit/navigationArea/__snapshots__/NavigationArea.spec.ts.snap +++ b/web/satellite/tests/unit/navigationArea/__snapshots__/NavigationArea.spec.ts.snap @@ -4,6 +4,7 @@ exports[`NavigationArea snapshot not changed during onboarding tour 1`] = ``; exports[`NavigationArea snapshot not changed with project 1`] = ` - diff --git a/web/satellite/tests/unit/project/__snapshots__/ProjectDetails.spec.ts.snap b/web/satellite/tests/unit/project/__snapshots__/ProjectDetails.spec.ts.snap deleted file mode 100644 index abfd6e8ae..000000000 --- a/web/satellite/tests/unit/project/__snapshots__/ProjectDetails.spec.ts.snap +++ /dev/null @@ -1,36 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`ProjectDetails.vue editing works correctly 1`] = ` -
-
-

test

- -
-
4/100 -
Cancel
-
Save
-
-
-`; - -exports[`ProjectDetails.vue editing works correctly 2`] = ` -
-
-

test

- Edit Description - -
-

new description

-
-`; - -exports[`ProjectDetails.vue renders correctly 1`] = ` -
-
-

test

- Edit Description - -
-

test

-
-`; diff --git a/web/satellite/tests/unit/projectMembers/__snapshots__/HeaderArea.spec.ts.snap b/web/satellite/tests/unit/projectMembers/__snapshots__/HeaderArea.spec.ts.snap index f61579892..56e54726c 100644 --- a/web/satellite/tests/unit/projectMembers/__snapshots__/HeaderArea.spec.ts.snap +++ b/web/satellite/tests/unit/projectMembers/__snapshots__/HeaderArea.spec.ts.snap @@ -38,7 +38,7 @@ exports[`Team HeaderArea renders correctly with 1 selected user and delete click
Are you sure you want to delete 1 user?
- +
@@ -64,7 +64,7 @@ exports[`Team HeaderArea renders correctly with 2 selected users and delete clic
Are you sure you want to delete 2 users?
- +
@@ -111,7 +111,7 @@ exports[`Team HeaderArea renders correctly with selected users 1`] = `
- 2 users selected + 2 users selected
diff --git a/web/satellite/tests/unit/store/projects.spec.ts b/web/satellite/tests/unit/store/projects.spec.ts index b854a2124..871cc45b9 100644 --- a/web/satellite/tests/unit/store/projects.spec.ts +++ b/web/satellite/tests/unit/store/projects.spec.ts @@ -5,7 +5,7 @@ import Vuex from 'vuex'; import { ProjectsApiGql } from '@/api/projects'; import { makeProjectsModule, PROJECTS_ACTIONS, PROJECTS_MUTATIONS } from '@/store/modules/projects'; -import { Project, ProjectLimits, UpdateProjectFields } from '@/types/projects'; +import { Project, ProjectFields, ProjectLimits } from '@/types/projects'; import { createLocalVue } from '@vue/test-utils'; const Vue = createLocalVue(); @@ -237,7 +237,7 @@ describe('actions', () => { state.projects = projects; const newName = 'newName'; - const fieldsToUpdate = new UpdateProjectFields(newName, state.projects[0].description); + const fieldsToUpdate = new ProjectFields(newName, state.projects[0].description); await store.dispatch(UPDATE_NAME, fieldsToUpdate); @@ -251,7 +251,7 @@ describe('actions', () => { state.projects = projects; const newDescription = 'newDescription1'; - const fieldsToUpdate = new UpdateProjectFields(state.projects[0].name, newDescription); + const fieldsToUpdate = new ProjectFields(state.projects[0].name, newDescription); await store.dispatch(UPDATE_DESCRIPTION, fieldsToUpdate); @@ -263,7 +263,7 @@ describe('actions', () => { state.projects = projects; const newDescription = 'newDescription2'; - const fieldsToUpdate = new UpdateProjectFields(state.projects[0].name, newDescription); + const fieldsToUpdate = new ProjectFields(state.projects[0].name, newDescription); try { await store.dispatch(UPDATE_DESCRIPTION, fieldsToUpdate);