diff --git a/lib/process-services/src/lib/mock/public-api.ts b/lib/process-services/src/lib/mock/public-api.ts index a671ba3cac8..c8220a6c0f6 100644 --- a/lib/process-services/src/lib/mock/public-api.ts +++ b/lib/process-services/src/lib/mock/public-api.ts @@ -22,4 +22,3 @@ export * from './process/process-comments.mock'; export * from './task/task-details.mock'; export * from './task/task-list.mock'; -export * from './task/task-filters.mock'; diff --git a/lib/process-services/src/lib/mock/task/task-filters.mock.ts b/lib/process-services/src/lib/mock/task/task-filters.mock.ts deleted file mode 100644 index 3472167ff8a..00000000000 --- a/lib/process-services/src/lib/mock/task/task-filters.mock.ts +++ /dev/null @@ -1,131 +0,0 @@ -/*! - * @license - * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { UserTaskFilterRepresentation } from '@alfresco/js-api'; - -export const fakeFiltersResponse: any = { - size: 2, - total: 2, - start: 0, - data: [ - { - id: 1, - name: 'FakeInvolvedTasks', - recent: false, - icon: 'glyphicon-align-left', - filter: { sort: 'created-desc', name: '', state: 'open', assignment: 'fake-involved' } - }, - { - id: 2, - name: 'FakeMyTasks', - recent: false, - icon: 'glyphicon-align-left', - filter: { sort: 'created-desc', name: '', state: 'open', assignment: 'fake-assignee' } - } - ] -}; - -export const fakeTaskFilters = [ - new UserTaskFilterRepresentation({ - name: 'FakeInvolvedTasks', - icon: 'glyphicon-align-left', - id: 10, - filter: { state: 'open', assignment: 'fake-involved' } - }), - new UserTaskFilterRepresentation({ - name: 'FakeMyTasks1', - icon: 'glyphicon-ok-sign', - id: 11, - filter: { state: 'open', assignment: 'fake-assignee' } - }), - new UserTaskFilterRepresentation({ - name: 'FakeMyTasks2', - icon: 'glyphicon-inbox', - id: 12, - filter: { state: 'open', assignment: 'fake-assignee' } - }) -]; - -export const fakeAppFilter = { - size: 1, - total: 1, - start: 0, - data: [ - { - id: 1, - name: 'FakeInvolvedTasks', - recent: false, - icon: 'glyphicon-align-left', - filter: { sort: 'created-desc', name: '', state: 'open', assignment: 'fake-involved' } - } - ] -}; - -export const dummyMyTasksFilter = { - appId: 101, - name: 'My Tasks', - filter: { sort: 'created-desc', name: '', state: 'open', assignment: 'fake-mytasks' }, - icon: 'fa-random', - id: 81, - index: 21, - recent: false, - hasFilter: () => true -}; - -export const dummyInvolvedTasksFilter = { - appId: 101, - name: 'Involved Tasks', - filter: { sort: 'created-desc', name: '', state: 'open', assignment: 'fake-involved' }, - icon: 'fa-random', - id: 82, - index: 22, - recent: false, - hasFilter: () => true -}; - -export const dummyQueuedTasksFilter = { - appId: 101, - name: 'Queued Tasks', - filter: { sort: 'created-desc', name: '', state: 'open', assignment: 'fake-queued' }, - icon: 'fa-random', - id: 83, - index: 23, - recent: false, - hasFilter: () => true -}; - -export const dummyCompletedTasksFilter = { - appId: 101, - name: 'Completed', - filter: { sort: 'created-desc', name: '', state: 'open', assignment: 'fake-completed' }, - icon: 'fa-random', - id: 84, - index: 24, - recent: false, - hasFilter: () => true -}; - -export const dummyDuplicateMyTasksFilter = { - appId: 101, - name: 'My Tasks', - filter: { sort: 'created-desc', name: '', state: 'open', assignment: 'fake-mytasks' }, - icon: 'fa-random', - id: 85, - index: 25, - recent: false, - hasFilter: () => true -}; diff --git a/lib/process-services/src/lib/task-comments/services/task-comments.service.spec.ts b/lib/process-services/src/lib/task-comments/services/task-comments.service.spec.ts deleted file mode 100644 index e357a68526a..00000000000 --- a/lib/process-services/src/lib/task-comments/services/task-comments.service.spec.ts +++ /dev/null @@ -1,105 +0,0 @@ -/*! - * @license - * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { TestBed } from '@angular/core/testing'; -import { CoreTestingModule } from '@alfresco/adf-core'; -import { TaskCommentsService } from './task-comments.service'; - -declare let jasmine: any; - -export const fakeUser1 = { id: 1, email: 'fake-email@dom.com', firstName: 'firstName', lastName: 'lastName' }; - -export const fakeTasksComment = { - size: 2, - total: 2, - start: 0, - data: [ - { - id: 1, - message: 'fake-message-1', - created: '', - createdBy: fakeUser1 - }, - { - id: 2, - message: 'fake-message-2', - created: '', - createdBy: fakeUser1 - } - ] -}; - -describe('TaskCommentsService', () => { - let service: TaskCommentsService; - - beforeEach(() => { - TestBed.configureTestingModule({ - imports: [CoreTestingModule] - }); - service = TestBed.inject(TaskCommentsService); - }); - - beforeEach(() => { - jasmine.Ajax.install(); - }); - - afterEach(() => { - jasmine.Ajax.uninstall(); - }); - - describe('Task comments', () => { - it('should add a comment task ', (done) => { - service.add('999', 'fake-comment-message').subscribe((res) => { - expect(res).toBeDefined(); - expect(res.id).not.toEqual(null); - expect(res.message).toEqual('fake-comment-message'); - expect(res.created).not.toEqual(null); - expect(res.createdBy.email).toEqual('fake-email@dom.com'); - expect(res.createdBy.firstName).toEqual('firstName'); - expect(res.createdBy.lastName).toEqual('lastName'); - done(); - }); - - jasmine.Ajax.requests.mostRecent().respondWith({ - status: 200, - contentType: 'application/json', - responseText: JSON.stringify({ - id: '111', - message: 'fake-comment-message', - createdBy: fakeUser1, - created: '2016-07-15T11:19:17.440+0000' - }) - }); - }); - - it('should return the tasks comments ', (done) => { - service.get('999').subscribe((res) => { - expect(res).toBeDefined(); - expect(res.length).toEqual(2); - expect(res[0].message).toEqual('fake-message-1'); - expect(res[1].message).toEqual('fake-message-2'); - done(); - }); - - jasmine.Ajax.requests.mostRecent().respondWith({ - status: 200, - contentType: 'application/json', - responseText: JSON.stringify(fakeTasksComment) - }); - }); - }); -}); diff --git a/lib/process-services/src/lib/task-list/components/task-filters.component.spec.ts b/lib/process-services/src/lib/task-list/components/task-filters.component.spec.ts index 89aa7ea39f7..a0f19e5e993 100644 --- a/lib/process-services/src/lib/task-list/components/task-filters.component.spec.ts +++ b/lib/process-services/src/lib/task-list/components/task-filters.component.spec.ts @@ -25,11 +25,31 @@ import { TaskFilterService } from '../services/task-filter.service'; import { TaskFiltersComponent } from './task-filters.component'; import { ProcessTestingModule } from '../../testing/process.testing.module'; import { By } from '@angular/platform-browser'; -import { fakeTaskFilters } from '../../mock/task/task-filters.mock'; import { NavigationStart, Router } from '@angular/router'; import { RouterTestingModule } from '@angular/router/testing'; import { UserTaskFilterRepresentation } from '@alfresco/js-api'; +const fakeTaskFilters = [ + new UserTaskFilterRepresentation({ + name: 'FakeInvolvedTasks', + icon: 'glyphicon-align-left', + id: 10, + filter: { state: 'open', assignment: 'fake-involved' } + }), + new UserTaskFilterRepresentation({ + name: 'FakeMyTasks1', + icon: 'glyphicon-ok-sign', + id: 11, + filter: { state: 'open', assignment: 'fake-assignee' } + }), + new UserTaskFilterRepresentation({ + name: 'FakeMyTasks2', + icon: 'glyphicon-inbox', + id: 12, + filter: { state: 'open', assignment: 'fake-assignee' } + }) +]; + describe('TaskFiltersComponent', () => { let taskListService: TaskListService; let taskFilterService: TaskFilterService; diff --git a/lib/process-services/src/lib/task-list/services/task-filter.service.spec.ts b/lib/process-services/src/lib/task-list/services/task-filter.service.spec.ts deleted file mode 100644 index 5a3ec3ef8d2..00000000000 --- a/lib/process-services/src/lib/task-list/services/task-filter.service.spec.ts +++ /dev/null @@ -1,368 +0,0 @@ -/*! - * @license - * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { TestBed } from '@angular/core/testing'; -import { - fakeFiltersResponse, - fakeAppFilter, - dummyMyTasksFilter, - dummyInvolvedTasksFilter, - dummyQueuedTasksFilter, - dummyCompletedTasksFilter, - dummyDuplicateMyTasksFilter -} from '../../mock/task/task-filters.mock'; -import { TaskFilterService } from './task-filter.service'; -import { CoreModule } from '@alfresco/adf-core'; -import { ProcessTestingModule } from '../../testing/process.testing.module'; -import { TaskFilterRepresentation, UserTaskFilterRepresentation } from '@alfresco/js-api'; -import { of } from 'rxjs'; - -declare let jasmine: any; - -describe('Activiti Task filter Service', () => { - let service: TaskFilterService; - - beforeEach(() => { - TestBed.configureTestingModule({ - imports: [CoreModule.forRoot(), ProcessTestingModule] - }); - service = TestBed.inject(TaskFilterService); - jasmine.Ajax.install(); - }); - - afterEach(() => { - jasmine.Ajax.uninstall(); - }); - - describe('Content tests', () => { - it('should return the task list filters', (done) => { - service.getTaskListFilters().subscribe((res) => { - expect(res).toBeDefined(); - expect(res.length).toEqual(2); - expect(res[0].name).toEqual('FakeInvolvedTasks'); - expect(res[1].name).toEqual('FakeMyTasks'); - done(); - }); - - jasmine.Ajax.requests.mostRecent().respondWith({ - status: 200, - contentType: 'application/json', - responseText: JSON.stringify(fakeFiltersResponse) - }); - }); - - it('should return the task filter by id', (done) => { - service.getTaskFilterById(2).subscribe((taskFilter) => { - expect(taskFilter).toBeDefined(); - expect(taskFilter.id).toEqual(2); - expect(taskFilter.name).toEqual('FakeMyTasks'); - expect(taskFilter.filter.sort).toEqual('created-desc'); - expect(taskFilter.filter.state).toEqual('open'); - expect(taskFilter.filter.assignment).toEqual('fake-assignee'); - done(); - }); - - jasmine.Ajax.requests.mostRecent().respondWith({ - status: 200, - contentType: 'application/json', - responseText: JSON.stringify(fakeFiltersResponse) - }); - }); - - it('should return the task filter by name', (done) => { - service.getTaskFilterByName('FakeMyTasks').subscribe((res) => { - expect(res).toBeDefined(); - expect(res.id).toEqual(2); - expect(res.name).toEqual('FakeMyTasks'); - expect(res.filter.sort).toEqual('created-desc'); - expect(res.filter.state).toEqual('open'); - expect(res.filter.assignment).toEqual('fake-assignee'); - done(); - }); - - jasmine.Ajax.requests.mostRecent().respondWith({ - status: 200, - contentType: 'application/json', - responseText: JSON.stringify(fakeFiltersResponse) - }); - }); - - it('should call the api with the appId', (done) => { - spyOn(service, 'callApiTaskFilters').and.returnValue(Promise.resolve(fakeAppFilter)); - - const appId = 1; - service.getTaskListFilters(appId).subscribe(() => { - expect(service.callApiTaskFilters).toHaveBeenCalledWith(appId); - done(); - }); - }); - - it('should return the app filter by id', (done) => { - const appId = 1; - service.getTaskListFilters(appId).subscribe((res) => { - expect(res).toBeDefined(); - expect(res.length).toEqual(1); - expect(res[0].name).toEqual('FakeInvolvedTasks'); - done(); - }); - - jasmine.Ajax.requests.mostRecent().respondWith({ - status: 200, - contentType: 'application/json', - responseText: JSON.stringify(fakeAppFilter) - }); - }); - - it('should return the default filters', (done) => { - service.createDefaultFilters(1234).subscribe((res) => { - expect(res).toBeDefined(); - expect(res.length).toEqual(4); - expect(res[0].name).toEqual('My Tasks'); - expect(res[0].id).toEqual(111); - expect(res[1].name).toEqual('Involved Tasks'); - expect(res[1].id).toEqual(222); - expect(res[2].name).toEqual('Queued Tasks'); - expect(res[2].id).toEqual(333); - expect(res[3].name).toEqual('Completed Tasks'); - expect(res[3].id).toEqual(444); - done(); - }); - - jasmine.Ajax.requests.at(0).respondWith({ - status: 200, - contentType: 'application/json', - responseText: JSON.stringify({ - appId: 1001, - id: 111, - name: 'My Tasks', - icon: 'fake-icon', - recent: false - }) - }); - - jasmine.Ajax.requests.at(1).respondWith({ - status: 200, - contentType: 'application/json', - responseText: JSON.stringify({ - appId: 1001, - id: 222, - name: 'Involved Tasks', - icon: 'fake-icon', - recent: false - }) - }); - - jasmine.Ajax.requests.at(2).respondWith({ - status: 200, - contentType: 'application/json', - responseText: JSON.stringify({ - appId: 1001, - id: 333, - name: 'Queued Tasks', - icon: 'fake-icon', - recent: false - }) - }); - - jasmine.Ajax.requests.at(3).respondWith({ - status: 200, - contentType: 'application/json', - responseText: JSON.stringify({ - appId: 1001, - id: 444, - name: 'Completed Tasks', - icon: 'fake-icon', - recent: false - }) - }); - }); - - it('should be able create filters and add sorting information to the response', (done) => { - service.createDefaultFilters(1234).subscribe((res) => { - expect(res).toBeDefined(); - expect(res.length).toEqual(4); - expect(res[0].name).toEqual('My Tasks'); - expect(res[0].filter.sort).toEqual('created-desc'); - expect(res[0].filter.assignment).toEqual('assignee'); - - expect(res[1].name).toEqual('Involved Tasks'); - expect(res[1].filter.sort).toEqual('created-desc'); - expect(res[1].filter.assignment).toEqual('involved'); - - expect(res[2].name).toEqual('Queued Tasks'); - expect(res[2].filter.sort).toEqual('created-desc'); - expect(res[2].filter.assignment).toEqual('candidate'); - - expect(res[3].name).toEqual('Completed Tasks'); - expect(res[3].filter.sort).toEqual('created-desc'); - expect(res[3].filter.assignment).toEqual('involved'); - done(); - }); - - jasmine.Ajax.requests.at(0).respondWith({ - status: 200, - contentType: 'application/json', - responseText: JSON.stringify({ - appId: 1001, - id: 111, - name: 'My Tasks', - icon: 'fake-icon', - recent: false - }) - }); - - jasmine.Ajax.requests.at(1).respondWith({ - status: 200, - contentType: 'application/json', - responseText: JSON.stringify({ - appId: 1001, - id: 222, - name: 'Involved Tasks', - icon: 'fake-icon', - recent: false - }) - }); - - jasmine.Ajax.requests.at(2).respondWith({ - status: 200, - contentType: 'application/json', - responseText: JSON.stringify({ - appId: 1001, - id: 333, - name: 'Queued Tasks', - icon: 'fake-icon', - recent: false - }) - }); - - jasmine.Ajax.requests.at(3).respondWith({ - status: 200, - contentType: 'application/json', - responseText: JSON.stringify({ - appId: 1001, - id: 444, - name: 'Completed Tasks', - icon: 'fake-icon', - recent: false - }) - }); - }); - - it('should add a filter', (done) => { - const filterFake = new TaskFilterRepresentation({ - name: 'FakeNameFilter', - assignment: 'fake-assignment' - }); - - service.addFilter(filterFake).subscribe((res) => { - expect(res).toBeDefined(); - expect(res.id).not.toEqual(null); - expect(res.name).toEqual('FakeNameFilter'); - expect(res.filter.assignment).toEqual('fake-assignment'); - done(); - }); - - jasmine.Ajax.requests.mostRecent().respondWith({ - status: 200, - contentType: 'application/json', - responseText: JSON.stringify({ - id: '2233', - name: 'FakeNameFilter', - filter: { assignment: 'fake-assignment' } - }) - }); - }); - }); - - describe('isFilterAlreadyExisting', () => { - let dummyTaskFilters: UserTaskFilterRepresentation[]; - let filterRepresentationData: TaskFilterRepresentation; - - beforeEach(() => { - dummyTaskFilters = [ - { - appId: 0, - filter: filterRepresentationData, - icon: 'fa-random', - id: 9, - index: 0, - name: 'My Tasks', - recent: false - } - ]; - - filterRepresentationData = { - name: '', - sort: 'created-desc', - state: 'running' - }; - }); - - it('should return true if the task filter already exists', () => { - const taskFilterName = 'My Tasks'; - const result = service.isFilterAlreadyExisting(dummyTaskFilters, taskFilterName); - expect(result).toBe(true); - }); - - it('should return false if the task filter does not exist', () => { - const taskFilterName = 'Involved Tasks'; - const result = service.isFilterAlreadyExisting(dummyTaskFilters, taskFilterName); - expect(result).toBe(false); - }); - }); - - describe('createDefaultFilters', () => { - it('should return an array with unique task filters', (done) => { - const appId = 101; - - const myTasksFilter = dummyMyTasksFilter; - const involvedTasksFilter = dummyInvolvedTasksFilter; - const queuedTasksFilter = dummyQueuedTasksFilter; - const completedTasksFilter = dummyCompletedTasksFilter; - const duplicateMyTasksFilter = dummyDuplicateMyTasksFilter; - - const myTasksObservableObservable = of(myTasksFilter); - const involvedTasksObservable = of(involvedTasksFilter); - const queuedTasksObservable = of(queuedTasksFilter); - const completedTasksObservable = of(completedTasksFilter); - const duplicateMyTasksObservableObservable = of(duplicateMyTasksFilter); - - spyOn(service, 'getMyTasksFilterInstance').and.returnValue(myTasksFilter); - spyOn(service, 'getInvolvedTasksFilterInstance').and.returnValue(involvedTasksFilter); - spyOn(service, 'getQueuedTasksFilterInstance').and.returnValue(queuedTasksFilter); - spyOn(service, 'getCompletedTasksFilterInstance').and.returnValue(completedTasksFilter); - - spyOn(service, 'addFilter').and.returnValues( - myTasksObservableObservable, - involvedTasksObservable, - queuedTasksObservable, - completedTasksObservable, - duplicateMyTasksObservableObservable - ); - - service.createDefaultFilters(appId).subscribe((result) => { - expect(result).toEqual([ - new UserTaskFilterRepresentation({ ...myTasksFilter, filter: myTasksFilter.filter, appId }), - new UserTaskFilterRepresentation({ ...involvedTasksFilter, filter: involvedTasksFilter.filter, appId }), - new UserTaskFilterRepresentation({ ...queuedTasksFilter, filter: queuedTasksFilter.filter, appId }), - new UserTaskFilterRepresentation({ ...completedTasksFilter, filter: completedTasksFilter.filter, appId }) - ]); - done(); - }); - }); - }); -});