AAE-36484 improved standalone support for Core

This commit is contained in:
Ehsan Rezaei
2025-07-17 11:56:53 +02:00
parent 6811ccaaa0
commit 230ece7d16
181 changed files with 682 additions and 836 deletions
@@ -18,8 +18,8 @@
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { fakeApplicationInstance } from '../../mock/app-model.mock';
import { AppDetailsCloudComponent } from './app-details-cloud.component';
import { ProcessServiceCloudTestingModule } from '../../../testing/process-service-cloud.testing.module';
import { DEFAULT_APP_INSTANCE_THEME } from '../../models/application-instance.model';
import { NoopTranslateModule } from '@alfresco/adf-core';
describe('AppDetailsCloudComponent', () => {
let component: AppDetailsCloudComponent;
@@ -28,7 +28,7 @@ describe('AppDetailsCloudComponent', () => {
beforeEach(() => {
TestBed.configureTestingModule({
imports: [ProcessServiceCloudTestingModule, AppDetailsCloudComponent]
imports: [NoopTranslateModule, AppDetailsCloudComponent]
});
fixture = TestBed.createComponent(AppDetailsCloudComponent);
component = fixture.componentInstance;
@@ -22,9 +22,8 @@ import { of, throwError } from 'rxjs';
import { fakeApplicationInstance } from '../../mock/app-model.mock';
import { AppListCloudComponent, LAYOUT_GRID, LAYOUT_LIST } from './app-list-cloud.component';
import { AppsProcessCloudService } from '../../services/apps-process-cloud.service';
import { ProcessServiceCloudTestingModule } from '../../../testing/process-service-cloud.testing.module';
import { MatIconModule } from '@angular/material/icon';
import { CustomEmptyContentTemplateDirective } from '@alfresco/adf-core';
import { CustomEmptyContentTemplateDirective, NoopTranslateModule } from '@alfresco/adf-core';
describe('AppListCloudComponent', () => {
let component: AppListCloudComponent;
@@ -57,7 +56,7 @@ describe('AppListCloudComponent', () => {
beforeEach(() => {
TestBed.configureTestingModule({
imports: [ProcessServiceCloudTestingModule, AppListCloudComponent, CustomEmptyAppListCloudTemplateComponent]
imports: [NoopTranslateModule, AppListCloudComponent, CustomEmptyAppListCloudTemplateComponent]
});
fixture = TestBed.createComponent(AppListCloudComponent);
component = fixture.componentInstance;
@@ -18,11 +18,10 @@
import { TestBed } from '@angular/core/testing';
import { throwError } from 'rxjs';
import { AlfrescoApiService } from '@alfresco/adf-content-services';
import { AppConfigService, CoreTestingModule } from '@alfresco/adf-core';
import { HttpErrorResponse } from '@angular/common/http';
import { AppConfigService } from '@alfresco/adf-core';
import { HttpErrorResponse, provideHttpClient } from '@angular/common/http';
import { AppsProcessCloudService } from './apps-process-cloud.service';
import { fakeApplicationInstance, fakeApplicationInstanceWithEnvironment } from '../mock/app-model.mock';
import { ProcessServiceCloudTestingModule } from '../../testing/process-service-cloud.testing.module';
import { fakeEnvironmentList } from '../../common/mock/environment.mock';
import { AdfHttpClient } from '@alfresco/adf-core/api';
@@ -37,8 +36,7 @@ describe('AppsProcessCloudService', () => {
beforeEach(() => {
TestBed.configureTestingModule({
imports: [CoreTestingModule, ProcessServiceCloudTestingModule],
providers: [AlfrescoApiService, AppConfigService]
providers: [provideHttpClient(), AlfrescoApiService, AppConfigService]
});
adfHttpClient = TestBed.inject(AdfHttpClient);
spyOn(adfHttpClient, 'request').and.returnValue(apiMockResponse);
@@ -17,7 +17,6 @@
import { DateRangeFilterComponent } from './date-range-filter.component';
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { ProcessServiceCloudTestingModule } from '../../testing/process-service-cloud.testing.module';
import { MatSelectChange } from '@angular/material/select';
import { DateCloudFilterType } from '../../models/date-cloud-filter.model';
import { DateRangeFilterService } from './date-range-filter.service';
@@ -28,6 +27,7 @@ import { TestbedHarnessEnvironment } from '@angular/cdk/testing/testbed';
import { MatSelectHarness } from '@angular/material/select/testing';
import { MatFormFieldHarness } from '@angular/material/form-field/testing';
import { MatDateRangeInputHarness } from '@angular/material/datepicker/testing';
import { NoopTranslateModule } from '@alfresco/adf-core';
describe('DateRangeFilterComponent', () => {
let component: DateRangeFilterComponent;
@@ -37,7 +37,7 @@ describe('DateRangeFilterComponent', () => {
beforeEach(() => {
TestBed.configureTestingModule({
imports: [ProcessServiceCloudTestingModule, DateRangeFilterComponent]
imports: [NoopTranslateModule, DateRangeFilterComponent]
});
fixture = TestBed.createComponent(DateRangeFilterComponent);
component = fixture.componentInstance;
@@ -15,11 +15,10 @@
* limitations under the License.
*/
import { FormModel } from '@alfresco/adf-core';
import { FormModel, NoopTranslateModule } from '@alfresco/adf-core';
import { Component, DebugElement, ViewChild } from '@angular/core';
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { By } from '@angular/platform-browser';
import { ProcessServiceCloudTestingModule } from '../../testing/process-service-cloud.testing.module';
import { FormCloudComponent } from './form-cloud.component';
import { FormCustomOutcomesComponent } from './form-cloud-custom-outcomes.component';
import { MatButtonModule } from '@angular/material/button';
@@ -50,7 +49,7 @@ describe('FormCloudWithCustomOutComesComponent', () => {
beforeEach(() => {
TestBed.configureTestingModule({
imports: [ProcessServiceCloudTestingModule, FormCloudWithCustomOutComesComponent]
imports: [NoopTranslateModule, FormCloudWithCustomOutComesComponent]
});
fixture = TestBed.createComponent(FormCloudWithCustomOutComesComponent);
customComponent = fixture.componentInstance;
@@ -45,7 +45,6 @@ import { ComponentFixture, TestBed } from '@angular/core/testing';
import { MatDialog } from '@angular/material/dialog';
import { MatDialogHarness } from '@angular/material/dialog/testing';
import { By } from '@angular/platform-browser';
import { NoopAnimationsModule } from '@angular/platform-browser/animations';
import { TranslateLoader, TranslateService, provideTranslateService } from '@ngx-translate/core';
import { Observable, of, throwError } from 'rxjs';
import {
@@ -64,7 +63,6 @@ import { FORM_CLOUD_FIELD_VALIDATORS_TOKEN, FormCloudComponent } from './form-cl
import { MatButtonHarness } from '@angular/material/button/testing';
import { FormCloudDisplayMode } from '../../services/form-fields.interfaces';
import { CloudFormRenderingService } from './cloud-form-rendering.service';
import { ProcessServiceCloudTestingModule } from '../../testing/process-service-cloud.testing.module';
import { TaskVariableCloud } from '../models/task-variable-cloud.model';
const mockOauth2Auth: any = {
@@ -113,7 +111,7 @@ describe('FormCloudComponent', () => {
beforeEach(() => {
TestBed.configureTestingModule({
imports: [ProcessServiceCloudTestingModule, FormCloudComponent],
imports: [NoopTranslateModule, NoopAuthModule, FormCloudComponent],
providers: [
{
provide: VersionCompatibilityService,
@@ -1540,7 +1538,7 @@ describe('Multilingual Form', () => {
beforeEach(() => {
TestBed.configureTestingModule({
imports: [NoopAnimationsModule, NoopAuthModule],
imports: [NoopAuthModule],
providers: [
provideTranslateService({
loader: {
@@ -1615,7 +1613,7 @@ describe('retrieve metadata on submit', () => {
beforeEach(() => {
TestBed.configureTestingModule({
imports: [AuthModule.forRoot({ useHash: true }), NoopAnimationsModule, NoopTranslateModule, CoreModule.forRoot(), FormCloudComponent],
imports: [AuthModule.forRoot({ useHash: true }), CoreModule.forRoot(), FormCloudComponent],
providers: [
provideTranslations('app', 'resources'),
{
@@ -16,13 +16,13 @@
*/
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { ProcessServiceCloudTestingModule } from '../../testing/process-service-cloud.testing.module';
import { FormDefinitionSelectorCloudComponent } from './form-definition-selector-cloud.component';
import { of } from 'rxjs';
import { FormDefinitionSelectorCloudService } from '../services/form-definition-selector-cloud.service';
import { HarnessLoader } from '@angular/cdk/testing';
import { TestbedHarnessEnvironment } from '@angular/cdk/testing/testbed';
import { MatSelectHarness } from '@angular/material/select/testing';
import { NoopTranslateModule } from '@alfresco/adf-core';
describe('FormDefinitionCloudComponent', () => {
let fixture: ComponentFixture<FormDefinitionSelectorCloudComponent>;
@@ -32,7 +32,7 @@ describe('FormDefinitionCloudComponent', () => {
beforeEach(() => {
TestBed.configureTestingModule({
imports: [ProcessServiceCloudTestingModule, FormDefinitionSelectorCloudComponent]
imports: [NoopTranslateModule, FormDefinitionSelectorCloudComponent]
});
fixture = TestBed.createComponent(FormDefinitionSelectorCloudComponent);
service = TestBed.inject(FormDefinitionSelectorCloudService);
@@ -29,7 +29,9 @@ import {
FormService,
LocalizedDatePipe,
NotificationService,
UploadWidgetContentLinkModel
UploadWidgetContentLinkModel,
NoopTranslateModule,
NoopAuthModule
} from '@alfresco/adf-core';
import {
allSourceParams,
@@ -59,9 +61,14 @@ import {
onlyLocalParams,
processVariables
} from '../../../mocks/attach-file-cloud-widget.mock';
import { ProcessServiceCloudTestingModule } from '../../../../testing/process-service-cloud.testing.module';
import { Injector, runInInjectionContext } from '@angular/core';
import { ContentNodeSelectorPanelService, NewVersionUploaderDataAction, NewVersionUploaderService } from '@alfresco/adf-content-services';
import {
ContentNodeSelectorPanelService,
NewVersionUploaderDataAction,
NewVersionUploaderService,
AlfrescoApiService,
AlfrescoApiServiceMock
} from '@alfresco/adf-content-services';
import { By } from '@angular/platform-browser';
import { of, throwError } from 'rxjs';
@@ -143,7 +150,8 @@ describe('AttachFileCloudWidgetComponent', () => {
beforeEach(() => {
TestBed.configureTestingModule({
imports: [ProcessServiceCloudTestingModule, AttachFileCloudWidgetComponent]
imports: [NoopTranslateModule, NoopAuthModule, AttachFileCloudWidgetComponent],
providers: [{ provide: AlfrescoApiService, useClass: AlfrescoApiServiceMock }]
});
notificationService = TestBed.inject(NotificationService);
downloadService = TestBed.inject(DownloadService);
@@ -17,9 +17,9 @@
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { ProcessServiceCloudTestingModule } from '../../../../../testing/process-service-cloud.testing.module';
import { FilePropertiesTableCloudComponent } from './file-properties-table-cloud.component';
import { By } from '@angular/platform-browser';
import { NoopTranslateModule } from '@alfresco/adf-core';
describe('FilePropertiesTableCloudComponent', () => {
let widget: FilePropertiesTableCloudComponent;
@@ -27,7 +27,7 @@ describe('FilePropertiesTableCloudComponent', () => {
beforeEach(() => {
TestBed.configureTestingModule({
imports: [ProcessServiceCloudTestingModule, FilePropertiesTableCloudComponent]
imports: [NoopTranslateModule, FilePropertiesTableCloudComponent]
});
});
@@ -19,7 +19,6 @@ import { ComponentFixture, TestBed } from '@angular/core/testing';
import { DataColumn, DataRow, FormFieldModel, FormFieldTypes, FormModel, FormService, ObjectDataRow, VariableConfig } from '@alfresco/adf-core';
import { By } from '@angular/platform-browser';
import { DataTableWidgetComponent } from './data-table.widget';
import { ProcessServiceCloudTestingModule } from '../../../../testing/process-service-cloud.testing.module';
import { TaskVariableCloud } from '../../../models/task-variable-cloud.model';
import { FormCloudService } from '../../../services/form-cloud.service';
import {
@@ -85,9 +84,6 @@ describe('DataTableWidgetComponent', () => {
};
beforeEach(() => {
TestBed.configureTestingModule({
imports: [ProcessServiceCloudTestingModule]
});
fixture = TestBed.createComponent(DataTableWidgetComponent);
widget = fixture.componentInstance;
@@ -17,11 +17,9 @@
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { DateCloudWidgetComponent } from './date-cloud.widget';
import { FormFieldModel, FormModel, FormFieldTypes, DEFAULT_DATE_FORMAT } from '@alfresco/adf-core';
import { ProcessServiceCloudTestingModule } from '../../../../testing/process-service-cloud.testing.module';
import { FormFieldModel, FormModel, FormFieldTypes, DEFAULT_DATE_FORMAT, UnitTestingUtils } from '@alfresco/adf-core';
import { DateAdapter } from '@angular/material/core';
import { isEqual, subDays, addDays } from 'date-fns';
import { UnitTestingUtils } from '../../../../../../../core/src/lib/testing/unit-testing-utils';
import { HarnessLoader } from '@angular/cdk/testing';
import { TestbedHarnessEnvironment } from '@angular/cdk/testing/testbed';
@@ -36,7 +34,7 @@ describe('DateCloudWidgetComponent', () => {
beforeEach(() => {
TestBed.configureTestingModule({
imports: [ProcessServiceCloudTestingModule]
imports: [DateCloudWidgetComponent]
});
form = new FormModel();
@@ -15,17 +15,14 @@
* limitations under the License.
*/
import { FormService, FormFieldModel, FormModel, FormFieldTypes } from '@alfresco/adf-core';
import { FormFieldModel, FormModel, FormFieldTypes, UnitTestingUtils } from '@alfresco/adf-core';
import { HarnessLoader } from '@angular/cdk/testing';
import { TestbedHarnessEnvironment } from '@angular/cdk/testing/testbed';
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { ReactiveFormsModule } from '@angular/forms';
import { MatInputHarness } from '@angular/material/input/testing';
import { DisplayExternalPropertyWidgetComponent } from './display-external-property.widget';
import { FormCloudService } from '../../../services/form-cloud.service';
import { By } from '@angular/platform-browser';
import { ProcessServiceCloudTestingModule } from '../../../../testing/process-service-cloud.testing.module';
import { UnitTestingUtils } from '../../../../../../../core/src/lib/testing/unit-testing-utils';
describe('DisplayExternalPropertyWidgetComponent', () => {
let loader: HarnessLoader;
@@ -37,9 +34,8 @@ describe('DisplayExternalPropertyWidgetComponent', () => {
beforeEach(() => {
TestBed.configureTestingModule({
imports: [ProcessServiceCloudTestingModule, ReactiveFormsModule, DisplayExternalPropertyWidgetComponent],
providers: [FormService]
}).compileComponents();
imports: [DisplayExternalPropertyWidgetComponent]
});
fixture = TestBed.createComponent(DisplayExternalPropertyWidgetComponent);
widget = fixture.componentInstance;
@@ -18,7 +18,6 @@
import { DebugElement } from '@angular/core';
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { By } from '@angular/platform-browser';
import { CoreTestingModule } from '@alfresco/adf-core';
import { DisplayRichTextWidgetComponent } from './display-rich-text.widget';
describe('DisplayRichTextWidgetComponent', () => {
@@ -81,7 +80,7 @@ describe('DisplayRichTextWidgetComponent', () => {
beforeEach(() => {
TestBed.configureTestingModule({
imports: [CoreTestingModule, DisplayRichTextWidgetComponent]
imports: [DisplayRichTextWidgetComponent]
});
fixture = TestBed.createComponent(DisplayRichTextWidgetComponent);
widget = fixture.componentInstance;
@@ -19,9 +19,8 @@ import { ComponentFixture, TestBed } from '@angular/core/testing';
import { By } from '@angular/platform-browser';
import { of, throwError } from 'rxjs';
import { DEFAULT_OPTION, DropdownCloudWidgetComponent } from './dropdown-cloud.widget';
import { FormFieldModel, FormModel, FormService, FormFieldEvent, FormFieldTypes } from '@alfresco/adf-core';
import { FormFieldModel, FormModel, FormService, FormFieldEvent, FormFieldTypes, UnitTestingUtils } from '@alfresco/adf-core';
import { FormCloudService } from '../../../services/form-cloud.service';
import { ProcessServiceCloudTestingModule } from '../../../../testing/process-service-cloud.testing.module';
import {
fakeOptionList,
filterOptionList,
@@ -38,7 +37,6 @@ import { TestbedHarnessEnvironment } from '@angular/cdk/testing/testbed';
import { MatSelectHarness } from '@angular/material/select/testing';
import { DebugElement } from '@angular/core';
import { FormUtilsService } from '../../../services/form-utils.service';
import { UnitTestingUtils } from '../../../../../../../core/src/public-api';
describe('DropdownCloudWidgetComponent', () => {
let formService: FormService;
@@ -52,7 +50,7 @@ describe('DropdownCloudWidgetComponent', () => {
beforeEach(() => {
TestBed.configureTestingModule({
imports: [ProcessServiceCloudTestingModule]
imports: [DropdownCloudWidgetComponent]
});
fixture = TestBed.createComponent(DropdownCloudWidgetComponent);
widget = fixture.componentInstance;
@@ -15,10 +15,9 @@
* limitations under the License.
*/
import { FormFieldModel, FormFieldTypes, FormModel, IdentityGroupModel } from '@alfresco/adf-core';
import { FormFieldModel, FormFieldTypes, FormModel, IdentityGroupModel, NoopAuthModule, CoreModule } from '@alfresco/adf-core';
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { GroupCloudWidgetComponent } from './group-cloud.widget';
import { ProcessServiceCloudTestingModule } from '../../../../testing/process-service-cloud.testing.module';
import { HarnessLoader } from '@angular/cdk/testing';
import { TestbedHarnessEnvironment } from '@angular/cdk/testing/testbed';
import { MatChipHarness } from '@angular/material/chips/testing';
@@ -31,7 +30,7 @@ describe('GroupCloudWidgetComponent', () => {
beforeEach(() => {
TestBed.configureTestingModule({
imports: [ProcessServiceCloudTestingModule, GroupCloudWidgetComponent]
imports: [CoreModule.forRoot(), NoopAuthModule, GroupCloudWidgetComponent]
});
fixture = TestBed.createComponent(GroupCloudWidgetComponent);
widget = fixture.componentInstance;
@@ -15,10 +15,9 @@
* limitations under the License.
*/
import { FormFieldModel, FormFieldTypes, FormModel, IdentityUserModel } from '@alfresco/adf-core';
import { FormFieldModel, FormFieldTypes, FormModel, IdentityUserModel, NoopAuthModule, CoreModule } from '@alfresco/adf-core';
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { PeopleCloudWidgetComponent } from './people-cloud.widget';
import { ProcessServiceCloudTestingModule } from '../../../../testing/process-service-cloud.testing.module';
import { IdentityUserService } from '../../../../people/services/identity-user.service';
import { mockShepherdsPie, mockYorkshirePudding } from '../../../../people/mock/people-cloud.mock';
import { HarnessLoader } from '@angular/cdk/testing';
@@ -34,7 +33,7 @@ describe('PeopleCloudWidgetComponent', () => {
beforeEach(() => {
TestBed.configureTestingModule({
imports: [ProcessServiceCloudTestingModule, PeopleCloudWidgetComponent]
imports: [CoreModule.forRoot(), NoopAuthModule, PeopleCloudWidgetComponent]
});
identityUserService = TestBed.inject(IdentityUserService);
fixture = TestBed.createComponent(PeopleCloudWidgetComponent);
@@ -17,10 +17,10 @@
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { PropertiesViewerWrapperComponent } from './properties-viewer-wrapper.component';
import { ProcessServiceCloudTestingModule } from '../../../../../testing/process-service-cloud.testing.module';
import { of } from 'rxjs';
import { fakeNodeWithProperties } from '../../../../mocks/attach-file-cloud-widget.mock';
import { NodesApiService, BasicPropertiesService } from '@alfresco/adf-content-services';
import { NoopAuthModule, NoopTranslateModule } from '@alfresco/adf-core';
describe('PropertiesViewerWidgetComponent', () => {
let component: PropertiesViewerWrapperComponent;
@@ -29,7 +29,7 @@ describe('PropertiesViewerWidgetComponent', () => {
beforeEach(() => {
TestBed.configureTestingModule({
imports: [ProcessServiceCloudTestingModule, PropertiesViewerWrapperComponent],
imports: [NoopTranslateModule, NoopAuthModule, PropertiesViewerWrapperComponent],
providers: [NodesApiService, { provide: BasicPropertiesService, useValue: { getProperties: () => [] } }]
});
fixture = TestBed.createComponent(PropertiesViewerWrapperComponent);
@@ -16,9 +16,8 @@
*/
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { FormFieldModel, FormModel } from '@alfresco/adf-core';
import { FormFieldModel, FormModel, NoopTranslateModule, NoopAuthModule } from '@alfresco/adf-core';
import { PropertiesViewerWidgetComponent } from './properties-viewer.widget';
import { ProcessServiceCloudTestingModule } from '../../../../testing/process-service-cloud.testing.module';
import { fakeNodeWithProperties } from '../../../mocks/attach-file-cloud-widget.mock';
import { NodesApiService, BasicPropertiesService } from '@alfresco/adf-content-services';
import { of } from 'rxjs';
@@ -46,7 +45,7 @@ describe('PropertiesViewerWidgetComponent', () => {
beforeEach(() => {
TestBed.configureTestingModule({
imports: [ProcessServiceCloudTestingModule, PropertiesViewerWidgetComponent],
imports: [NoopTranslateModule, NoopAuthModule, PropertiesViewerWidgetComponent],
providers: [NodesApiService, { provide: BasicPropertiesService, useValue: { getProperties: () => [] } }]
});
fixture = TestBed.createComponent(PropertiesViewerWidgetComponent);
@@ -19,7 +19,6 @@ import { ComponentFixture, TestBed } from '@angular/core/testing';
import { FormFieldModel, FormFieldOption, FormFieldTypes, FormModel } from '@alfresco/adf-core';
import { FormCloudService } from '../../../services/form-cloud.service';
import { RadioButtonsCloudWidgetComponent } from './radio-buttons-cloud.widget';
import { ProcessServiceCloudTestingModule } from '../../../../testing/process-service-cloud.testing.module';
import { of, throwError } from 'rxjs';
import { HarnessLoader } from '@angular/cdk/testing';
import { TestbedHarnessEnvironment } from '@angular/cdk/testing/testbed';
@@ -46,7 +45,7 @@ describe('RadioButtonsCloudWidgetComponent', () => {
beforeEach(() => {
TestBed.configureTestingModule({
imports: [ProcessServiceCloudTestingModule, RadioButtonsCloudWidgetComponent]
imports: [RadioButtonsCloudWidgetComponent]
});
formCloudService = TestBed.inject(FormCloudService);
formUtilsService = TestBed.inject(FormUtilsService);
@@ -17,8 +17,7 @@
import { TestBed } from '@angular/core/testing';
import { AlfrescoApiService, AlfrescoApiServiceMock } from '@alfresco/adf-content-services';
import { NotificationService } from '@alfresco/adf-core';
import { ProcessServiceCloudTestingModule } from '../../testing/process-service-cloud.testing.module';
import { NotificationService, NoopTranslateModule } from '@alfresco/adf-core';
import { MatDialog, MatDialogModule } from '@angular/material/dialog';
import { of, Subject } from 'rxjs';
import { ContentCloudNodeSelectorService } from './content-cloud-node-selector.service';
@@ -51,7 +50,7 @@ describe('ContentCloudNodeSelectorService', () => {
beforeEach(() => {
TestBed.configureTestingModule({
imports: [ProcessServiceCloudTestingModule, MatDialogModule],
imports: [NoopTranslateModule, MatDialogModule],
providers: [{ provide: AlfrescoApiService, useClass: AlfrescoApiServiceMock }]
});
service = TestBed.inject(ContentCloudNodeSelectorService);
@@ -18,9 +18,8 @@
import { TestBed } from '@angular/core/testing';
import { FORM_CLOUD_SERVICE_FIELD_VALIDATORS_TOKEN, FormCloudService } from './form-cloud.service';
import { of } from 'rxjs';
import { ProcessServiceCloudTestingModule } from '../../testing/process-service-cloud.testing.module';
import { AdfHttpClient } from '@alfresco/adf-core/api';
import { FORM_FIELD_VALIDATORS, FormFieldValidator } from '@alfresco/adf-core';
import { FORM_FIELD_VALIDATORS, FormFieldValidator, NoopAuthModule } from '@alfresco/adf-core';
const mockTaskResponseBody = {
entry: { id: 'id', name: 'name', formKey: 'form-key' }
@@ -44,7 +43,7 @@ describe('Form Cloud service', () => {
beforeEach(() => {
TestBed.configureTestingModule({
imports: [ProcessServiceCloudTestingModule],
imports: [NoopAuthModule],
providers: [{ provide: FORM_CLOUD_SERVICE_FIELD_VALIDATORS_TOKEN, useValue: [fakeValidator] }]
});
service = TestBed.inject(FormCloudService);
@@ -17,9 +17,9 @@
import { TestBed } from '@angular/core/testing';
import { FormDefinitionSelectorCloudService } from './form-definition-selector-cloud.service';
import { ProcessServiceCloudTestingModule } from '../../testing/process-service-cloud.testing.module';
import { mockFormRepresentations } from '../mocks/form-representation.mock';
import { AdfHttpClient } from '@alfresco/adf-core/api';
import { NoopTranslateModule } from '@alfresco/adf-core';
describe('Form Definition Selector Cloud Service', () => {
let service: FormDefinitionSelectorCloudService;
@@ -28,7 +28,7 @@ describe('Form Definition Selector Cloud Service', () => {
beforeEach(() => {
TestBed.configureTestingModule({
imports: [ProcessServiceCloudTestingModule]
imports: [NoopTranslateModule]
});
service = TestBed.inject(FormDefinitionSelectorCloudService);
adfHttpClient = TestBed.inject(AdfHttpClient);
@@ -19,7 +19,6 @@ import { ComponentFixture, TestBed } from '@angular/core/testing';
import { By } from '@angular/platform-browser';
import { of } from 'rxjs';
import { GroupCloudComponent } from './group-cloud.component';
import { CoreTestingModule } from '@alfresco/adf-core';
import { DebugElement, SimpleChange } from '@angular/core';
import { IdentityGroupService } from '../services/identity-group.service';
import { mockFoodGroups, mockMeatChicken, mockVegetableAubergine } from '../mock/group-cloud.mock';
@@ -71,7 +70,7 @@ describe('GroupCloudComponent', () => {
beforeEach(() => {
TestBed.configureTestingModule({
imports: [CoreTestingModule, GroupCloudComponent]
imports: [GroupCloudComponent]
});
fixture = TestBed.createComponent(GroupCloudComponent);
component = fixture.componentInstance;
@@ -17,8 +17,7 @@
import { PeopleCloudComponent } from './people-cloud.component';
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { CoreTestingModule } from '@alfresco/adf-core';
import { ProcessServiceCloudTestingModule } from '../../testing/process-service-cloud.testing.module';
import { NoopAuthModule } from '@alfresco/adf-core';
import { DebugElement, SimpleChange } from '@angular/core';
import { By } from '@angular/platform-browser';
import { of } from 'rxjs';
@@ -28,7 +27,7 @@ import { TestbedHarnessEnvironment } from '@angular/cdk/testing/testbed';
import { MatChipHarness } from '@angular/material/chips/testing';
import { MatInputHarness } from '@angular/material/input/testing';
import { MatFormFieldHarness } from '@angular/material/form-field/testing';
import { IdentityUserService } from '@alfresco/adf-process-services-cloud';
import { IdentityUserService } from '../services/identity-user.service';
describe('PeopleCloudComponent', () => {
let loader: HarnessLoader;
@@ -81,7 +80,7 @@ describe('PeopleCloudComponent', () => {
beforeEach(() => {
TestBed.configureTestingModule({
imports: [CoreTestingModule, ProcessServiceCloudTestingModule, PeopleCloudComponent]
imports: [NoopAuthModule, PeopleCloudComponent]
});
fixture = TestBed.createComponent(PeopleCloudComponent);
component = fixture.componentInstance;
@@ -17,10 +17,10 @@
import { TestBed } from '@angular/core/testing';
import { IdentityUserService } from './identity-user.service';
import { ProcessServiceCloudTestingModule } from '../../testing/process-service-cloud.testing.module';
import { mockFoodUsers } from '../mock/people-cloud.mock';
import { AdfHttpClient } from '@alfresco/adf-core/api';
import { HttpErrorResponse } from '@angular/common/http';
import { NoopTranslateModule, NoopAuthModule } from '@alfresco/adf-core';
const mockHttpErrorResponse = new HttpErrorResponse({
error: 'Mock Error',
@@ -35,7 +35,7 @@ describe('IdentityUserService', () => {
beforeEach(() => {
TestBed.configureTestingModule({
imports: [ProcessServiceCloudTestingModule]
imports: [NoopTranslateModule, NoopAuthModule]
});
service = TestBed.inject(IdentityUserService);
adfHttpClient = TestBed.inject(AdfHttpClient);
@@ -16,24 +16,18 @@
*/
import { NgModule, ModuleWithProviders } from '@angular/core';
import { FormRenderingService, provideTranslations } from '@alfresco/adf-core';
import { provideTranslations } from '@alfresco/adf-core';
import { APP_LIST_CLOUD_DIRECTIVES } from './app/app-list-cloud.module';
import { TaskCloudModule } from './task/task-cloud.module';
import { ProcessCloudModule } from './process/process-cloud.module';
import { FORM_CLOUD_DIRECTIVES } from './form/form-cloud.module';
import { TASK_FORM_CLOUD_DIRECTIVES } from './task/task-form/task-form.module';
import {
LocalPreferenceCloudService,
PreferenceCloudServiceInterface,
PROCESS_FILTERS_SERVICE_TOKEN,
TASK_FILTERS_SERVICE_TOKEN,
PROCESS_LISTS_PREFERENCES_SERVICE_TOKEN,
TASK_LIST_PREFERENCES_SERVICE_TOKEN
} from './services/public-api';
import { CloudFormRenderingService } from './form/components/cloud-form-rendering.service';
import { PreferenceCloudServiceInterface, TASK_LIST_CLOUD_TOKEN } from './services/public-api';
import { RichTextEditorComponent } from './rich-text-editor';
import { GroupCloudComponent } from './group/components/group-cloud.component';
import { PeopleCloudComponent } from './people/components/people-cloud.component';
import { provideCloudFormRenderer, provideCloudPreferences } from './providers';
import { TaskListCloudService } from './task/task-list/services/task-list-cloud.service';
export const PROCESS_SERVICES_CLOUD_DIRECTIVES = [
...APP_LIST_CLOUD_DIRECTIVES,
@@ -43,9 +37,20 @@ export const PROCESS_SERVICES_CLOUD_DIRECTIVES = [
RichTextEditorComponent
] as const;
/**
* @deprecated this module is deprecated and will be removed in the future versions
*
* Instead, import the standalone components directly, or use the following provider API to replicate the behaviour:
*
* providers: [
* provideTranslations('adf-process-services-cloud', 'assets/adf-process-services-cloud')
* provideCloudPreferences()
* provideCloudFormRenderer(),
* { provide: TASK_LIST_CLOUD_TOKEN, useClass: TaskListCloudService }
* ]
*/
@NgModule({
imports: [ProcessCloudModule, TaskCloudModule, GroupCloudComponent, ...PROCESS_SERVICES_CLOUD_DIRECTIVES],
providers: [provideTranslations('adf-process-services-cloud', 'assets/adf-process-services-cloud')],
exports: [ProcessCloudModule, TaskCloudModule, GroupCloudComponent, ...PROCESS_SERVICES_CLOUD_DIRECTIVES]
})
export class ProcessServicesCloudModule {
@@ -57,12 +62,12 @@ export class ProcessServicesCloudModule {
ngModule: ProcessServicesCloudModule,
providers: [
provideTranslations('adf-process-services-cloud', 'assets/adf-process-services-cloud'),
{ provide: PROCESS_FILTERS_SERVICE_TOKEN, useExisting: filterPreferenceServiceInstance ?? LocalPreferenceCloudService },
{ provide: TASK_FILTERS_SERVICE_TOKEN, useExisting: filterPreferenceServiceInstance ?? LocalPreferenceCloudService },
{ provide: PROCESS_LISTS_PREFERENCES_SERVICE_TOKEN, useExisting: listPreferenceServiceInstance ?? LocalPreferenceCloudService },
{ provide: TASK_LIST_PREFERENCES_SERVICE_TOKEN, useExisting: listPreferenceServiceInstance ?? LocalPreferenceCloudService },
FormRenderingService,
{ provide: FormRenderingService, useClass: CloudFormRenderingService }
provideCloudPreferences({
filterPreferenceServiceInstance,
listPreferenceServiceInstance
}),
provideCloudFormRenderer(),
{ provide: TASK_LIST_CLOUD_TOKEN, useClass: TaskListCloudService }
]
};
}
@@ -16,7 +16,7 @@
*/
import { AlfrescoApiService } from '@alfresco/adf-content-services';
import { ADF_DATE_FORMATS, NoopAuthModule, NoopTranslateModule, UserPreferencesService } from '@alfresco/adf-core';
import { ADF_DATE_FORMATS, NoopAuthModule, UserPreferencesService } from '@alfresco/adf-core';
import { HarnessLoader } from '@angular/cdk/testing';
import { TestbedHarnessEnvironment } from '@angular/cdk/testing/testbed';
import { SimpleChange } from '@angular/core';
@@ -28,7 +28,6 @@ import { MatExpansionPanelHarness } from '@angular/material/expansion/testing';
import { MatIconTestingModule } from '@angular/material/icon/testing';
import { MatProgressSpinnerHarness } from '@angular/material/progress-spinner/testing';
import { MatSelectHarness } from '@angular/material/select/testing';
import { NoopAnimationsModule } from '@angular/platform-browser/animations';
import { endOfDay, format, isValid, startOfDay, subYears } from 'date-fns';
import { enUS } from 'date-fns/locale';
import { of } from 'rxjs';
@@ -51,7 +50,7 @@ import {
PROCESS_FILTER_ACTION_SAVE_DEFAULT
} from './edit-process-filter-cloud.component';
import { ProcessFilterDialogCloudComponent } from '../process-filter-dialog/process-filter-dialog-cloud.component';
import { IdentityUserService } from '@alfresco/adf-process-services-cloud';
import { IdentityUserService } from '../../../../people/services/identity-user.service';
describe('EditProcessFilterCloudComponent', () => {
let loader: HarnessLoader;
@@ -90,14 +89,7 @@ describe('EditProcessFilterCloudComponent', () => {
beforeEach(() => {
TestBed.configureTestingModule({
imports: [
NoopAuthModule,
MatIconTestingModule,
MatDialogModule,
NoopTranslateModule,
NoopAnimationsModule,
EditProcessFilterCloudComponent
],
imports: [NoopAuthModule, MatIconTestingModule, MatDialogModule, EditProcessFilterCloudComponent],
providers: [
{ provide: PROCESS_FILTERS_SERVICE_TOKEN, useClass: LocalPreferenceCloudService },
{ provide: MAT_DATE_LOCALE, useValue: enUS },
@@ -18,7 +18,7 @@
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
import { ProcessFilterDialogCloudComponent } from './process-filter-dialog-cloud.component';
import { ProcessServiceCloudTestingModule } from '../../../../testing/process-service-cloud.testing.module';
import { NoopTranslateModule } from '@alfresco/adf-core';
describe('ProcessFilterDialogCloudComponent', () => {
let component: ProcessFilterDialogCloudComponent;
@@ -35,7 +35,7 @@ describe('ProcessFilterDialogCloudComponent', () => {
beforeEach(() => {
TestBed.configureTestingModule({
imports: [ProcessServiceCloudTestingModule, ProcessFilterDialogCloudComponent],
imports: [NoopTranslateModule, ProcessFilterDialogCloudComponent],
providers: [
{ provide: MatDialogRef, useValue: mockDialogRef },
{ provide: MAT_DIALOG_DATA, useValue: mockDialogData }
@@ -24,9 +24,8 @@ import { By } from '@angular/platform-browser';
import { PROCESS_FILTERS_SERVICE_TOKEN } from '../../../../services/cloud-token.service';
import { LocalPreferenceCloudService } from '../../../../services/local-preference-cloud.service';
import { mockProcessFilters } from '../../mock/process-filters-cloud.mock';
import { AppConfigService, AppConfigServiceMock, NoopTranslateModule } from '@alfresco/adf-core';
import { AppConfigService, AppConfigServiceMock } from '@alfresco/adf-core';
import { ProcessListCloudService } from '../../../process-list/services/process-list-cloud.service';
import { NoopAnimationsModule } from '@angular/platform-browser/animations';
import { ApolloTestingModule } from 'apollo-angular/testing';
const ProcessFilterCloudServiceMock = {
@@ -44,7 +43,7 @@ describe('ProcessFiltersCloudComponent', () => {
const configureTestingModule = (searchApiMethod: 'GET' | 'POST') => {
TestBed.configureTestingModule({
imports: [NoopTranslateModule, NoopAnimationsModule, ProcessFiltersCloudComponent, ApolloTestingModule],
imports: [ProcessFiltersCloudComponent, ApolloTestingModule],
providers: [
{ provide: PROCESS_FILTERS_SERVICE_TOKEN, useClass: LocalPreferenceCloudService },
{ provide: AppConfigService, useClass: AppConfigServiceMock },
@@ -20,7 +20,6 @@ import { firstValueFrom, of } from 'rxjs';
import { ProcessFilterCloudService } from './process-filter-cloud.service';
import { PROCESS_FILTERS_SERVICE_TOKEN } from '../../../services/cloud-token.service';
import { LocalPreferenceCloudService } from '../../../services/local-preference-cloud.service';
import { ProcessServiceCloudTestingModule } from '../../../testing/process-service-cloud.testing.module';
import {
fakeEmptyProcessCloudFilterEntries,
fakeProcessCloudFilterEntries,
@@ -33,6 +32,7 @@ import { ProcessFilterCloudModel } from '../models/process-filter-cloud.model';
import { IdentityUserService } from '../../../people/services/identity-user.service';
import { NotificationCloudService } from '../../../services/notification-cloud.service';
import { ApolloTestingModule } from 'apollo-angular/testing';
import { NoopTranslateModule, NoopAuthModule } from '@alfresco/adf-core';
describe('ProcessFilterCloudService', () => {
let service: ProcessFilterCloudService;
@@ -52,7 +52,7 @@ describe('ProcessFilterCloudService', () => {
beforeEach(() => {
TestBed.configureTestingModule({
imports: [ProcessServiceCloudTestingModule, ApolloTestingModule],
imports: [NoopTranslateModule, NoopAuthModule, ApolloTestingModule],
providers: [{ provide: PROCESS_FILTERS_SERVICE_TOKEN, useClass: LocalPreferenceCloudService }]
});
service = TestBed.inject(ProcessFilterCloudService);
@@ -16,10 +16,9 @@
*/
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { AppConfigService } from '@alfresco/adf-core';
import { AppConfigService, NoopAuthModule, NoopTranslateModule } from '@alfresco/adf-core';
import { By } from '@angular/platform-browser';
import { of } from 'rxjs';
import { ProcessServiceCloudTestingModule } from '../../../testing/process-service-cloud.testing.module';
import { ProcessHeaderCloudComponent } from './process-header-cloud.component';
import { ProcessCloudService } from '../../services/process-cloud.service';
import { processInstanceDetailsCloudMock } from '../../mock/process-instance-details-cloud.mock';
@@ -32,7 +31,7 @@ describe('ProcessHeaderCloudComponent', () => {
beforeEach(() => {
TestBed.configureTestingModule({
imports: [ProcessServiceCloudTestingModule, ProcessHeaderCloudComponent]
imports: [NoopTranslateModule, NoopAuthModule, ProcessHeaderCloudComponent]
});
fixture = TestBed.createComponent(ProcessHeaderCloudComponent);
component = fixture.componentInstance;
@@ -29,22 +29,23 @@ import {
getDataColumnMock,
ObjectDataColumn,
ObjectDataRow,
User
User,
NoopAuthModule,
NoopTranslateModule
} from '@alfresco/adf-core';
import { ProcessListCloudService } from '../services/process-list-cloud.service';
import { ProcessListCloudComponent } from './process-list-cloud.component';
import { of, throwError } from 'rxjs';
import { shareReplay, skip } from 'rxjs/operators';
import { ProcessServiceCloudTestingModule } from '../../../testing/process-service-cloud.testing.module';
import { ProcessListCloudSortingModel } from '../models/process-list-sorting.model';
import { PROCESS_LISTS_PREFERENCES_SERVICE_TOKEN } from '../../../services/cloud-token.service';
import { ProcessListCloudPreferences } from '../models/process-cloud-preferences';
import { PROCESS_LIST_CUSTOM_VARIABLE_COLUMN, ProcessListDataColumnCustomData } from '../../../models/data-column-custom-data';
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
import { PreferenceCloudServiceInterface } from '../../../services/preference-cloud.interface';
import { HarnessLoader } from '@angular/cdk/testing';
import { TestbedHarnessEnvironment } from '@angular/cdk/testing/testbed';
import { MatProgressSpinnerHarness } from '@angular/material/progress-spinner/testing';
import { provideCloudPreferences } from '../../../providers';
const fakeCustomSchema = [
new ObjectDataColumn<ProcessListDataColumnCustomData>({
@@ -219,7 +220,8 @@ describe('ProcessListCloudComponent', () => {
const configureTestingModule = (searchApiMethod: 'GET' | 'POST') => {
TestBed.configureTestingModule({
imports: [ProcessServiceCloudTestingModule, ProcessListCloudComponent]
imports: [NoopAuthModule, ProcessListCloudComponent],
providers: [provideCloudPreferences()]
});
appConfig = TestBed.inject(AppConfigService);
processListCloudService = TestBed.inject(ProcessListCloudService);
@@ -1106,7 +1108,8 @@ describe('ProcessListCloudComponent: Injecting custom columns for task list - Cu
beforeEach(() => {
TestBed.configureTestingModule({
imports: [ProcessServiceCloudTestingModule, CustomTaskListComponent]
imports: [CustomTaskListComponent],
providers: [provideCloudPreferences()]
});
fixtureCustom = TestBed.createComponent(CustomTaskListComponent);
fixtureCustom.detectChanges();
@@ -1152,13 +1155,7 @@ describe('ProcessListCloudComponent: Creating an empty custom template - EmptyTe
beforeEach(() => {
TestBed.configureTestingModule({
imports: [
ProcessServiceCloudTestingModule,
MatProgressSpinnerModule,
CustomEmptyContentTemplateDirective,
ProcessListCloudComponent,
EmptyTemplateComponent
],
imports: [NoopTranslateModule, CustomEmptyContentTemplateDirective, ProcessListCloudComponent, EmptyTemplateComponent],
providers: [{ provide: PROCESS_LISTS_PREFERENCES_SERVICE_TOKEN, useValue: preferencesService }]
});
fixtureEmpty = TestBed.createComponent(EmptyTemplateComponent);
@@ -18,9 +18,9 @@
import { fakeAsync, TestBed } from '@angular/core/testing';
import { ProcessListCloudService } from './process-list-cloud.service';
import { ProcessListRequestModel, ProcessQueryCloudRequestModel } from '../models/process-cloud-query-request.model';
import { ProcessServiceCloudTestingModule } from '../../../testing/process-service-cloud.testing.module';
import { AdfHttpClient } from '@alfresco/adf-core/api';
import { catchError, firstValueFrom, of } from 'rxjs';
import { NoopTranslateModule } from '@alfresco/adf-core';
describe('ProcessListCloudService', () => {
let service: ProcessListCloudService;
@@ -37,7 +37,7 @@ describe('ProcessListCloudService', () => {
beforeEach(fakeAsync(() => {
TestBed.configureTestingModule({
imports: [ProcessServiceCloudTestingModule]
imports: [NoopTranslateModule]
});
adfHttpClient = TestBed.inject(AdfHttpClient);
service = TestBed.inject(ProcessListCloudService);
@@ -37,7 +37,6 @@ import {
import { By } from '@angular/platform-browser';
import { ProcessPayloadCloud } from '../models/process-payload-cloud.model';
import { ProcessWithFormPayloadCloud } from '../models/process-with-form-payload-cloud.model';
import { ProcessServiceCloudTestingModule } from '../../../testing/process-service-cloud.testing.module';
import { ProcessInstanceCloud } from '../models/process-instance-cloud.model';
import { ESCAPE } from '@angular/cdk/keycodes';
import { ProcessDefinitionCloud } from '../../../models/process-definition-cloud.model';
@@ -85,7 +84,7 @@ describe('StartProcessCloudComponent', () => {
beforeEach(() => {
TestBed.configureTestingModule({
imports: [ProcessServiceCloudTestingModule, StartProcessCloudComponent]
imports: [StartProcessCloudComponent]
});
processService = TestBed.inject(StartProcessCloudService);
formCloudService = TestBed.inject(FormCloudService);
@@ -0,0 +1,57 @@
/*!
* @license
* Copyright © 2005-2025 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 { PreferenceCloudServiceInterface } from './services/preference-cloud.interface';
import { Provider } from '@angular/core';
import {
PROCESS_FILTERS_SERVICE_TOKEN,
PROCESS_LISTS_PREFERENCES_SERVICE_TOKEN,
TASK_FILTERS_SERVICE_TOKEN,
TASK_LIST_PREFERENCES_SERVICE_TOKEN
} from './services/cloud-token.service';
import { LocalPreferenceCloudService } from './services/local-preference-cloud.service';
import { FormRenderingService } from '@alfresco/adf-core';
import { CloudFormRenderingService } from './form/components/cloud-form-rendering.service';
/**
* Provides preferences service for the process services cloud components
*
* @param opts Optional settings
* @param opts.filterPreferenceServiceInstance Custom filter instance for `PROCESS_FILTERS_SERVICE_TOKEN` and `TASK_FILTERS_SERVICE_TOKEN` (default: LocalPreferenceCloudService)
* @param opts.listPreferenceServiceInstance Custom filter instance for `PROCESS_LISTS_PREFERENCES_SERVICE_TOKEN` and `TASK_LIST_PREFERENCES_SERVICE_TOKEN` (default: LocalPreferenceCloudService)
* @returns list of providers
*/
export function provideCloudPreferences(opts?: {
filterPreferenceServiceInstance?: PreferenceCloudServiceInterface;
listPreferenceServiceInstance?: PreferenceCloudServiceInterface;
}): Provider[] {
return [
{ provide: PROCESS_FILTERS_SERVICE_TOKEN, useExisting: opts?.filterPreferenceServiceInstance ?? LocalPreferenceCloudService },
{ provide: TASK_FILTERS_SERVICE_TOKEN, useExisting: opts?.filterPreferenceServiceInstance ?? LocalPreferenceCloudService },
{ provide: PROCESS_LISTS_PREFERENCES_SERVICE_TOKEN, useExisting: opts?.listPreferenceServiceInstance ?? LocalPreferenceCloudService },
{ provide: TASK_LIST_PREFERENCES_SERVICE_TOKEN, useExisting: opts?.listPreferenceServiceInstance ?? LocalPreferenceCloudService }
];
}
/**
* Provides form rendering services for process cloud components
*
* @returns list of providers
*/
export function provideCloudFormRenderer(): Provider[] {
return [FormRenderingService, { provide: FormRenderingService, useClass: CloudFormRenderingService }];
}
@@ -18,8 +18,8 @@
import { TestBed } from '@angular/core/testing';
import { UserPreferenceCloudService } from './user-preference-cloud.service';
import { mockPreferences, getMockPreference, createMockPreference, updateMockPreference } from '../mock/user-preference.mock';
import { ProcessServiceCloudTestingModule } from '../testing/process-service-cloud.testing.module';
import { AdfHttpClient } from '@alfresco/adf-core/api';
import { NoopTranslateModule } from '@alfresco/adf-core';
describe('PreferenceService', () => {
let service: UserPreferenceCloudService;
@@ -34,7 +34,7 @@ describe('PreferenceService', () => {
beforeEach(() => {
TestBed.configureTestingModule({
imports: [ProcessServiceCloudTestingModule]
imports: [NoopTranslateModule]
});
service = TestBed.inject(UserPreferenceCloudService);
adfHttpClient = TestBed.inject(AdfHttpClient);
@@ -16,7 +16,7 @@
*/
import { TestBed } from '@angular/core/testing';
import { AppConfigService, TranslationService } from '@alfresco/adf-core';
import { AppConfigService, TranslationService, NoopTranslateModule, NoopAuthModule } from '@alfresco/adf-core';
import { TaskCloudService } from './task-cloud.service';
import { taskCompleteCloudMock } from '../task-header/mocks/fake-complete-task.mock';
import {
@@ -24,7 +24,6 @@ import {
createdTaskDetailsCloudMock,
emptyOwnerTaskDetailsCloudMock
} from '../task-header/mocks/task-details-cloud.mock';
import { ProcessServiceCloudTestingModule } from '../../testing/process-service-cloud.testing.module';
import { IdentityUserService } from '../../people/services/identity-user.service';
import { AdfHttpClient } from '@alfresco/adf-core/api';
@@ -82,7 +81,7 @@ describe('Task Cloud Service', () => {
beforeEach(() => {
TestBed.configureTestingModule({
imports: [ProcessServiceCloudTestingModule]
imports: [NoopTranslateModule, NoopAuthModule]
});
adfHttpClient = TestBed.inject(AdfHttpClient);
identityUserService = TestBed.inject(IdentityUserService);
@@ -37,11 +37,10 @@ import { TestbedHarnessEnvironment } from '@angular/cdk/testing/testbed';
import { MatExpansionPanelHarness } from '@angular/material/expansion/testing';
import { MatSelectHarness } from '@angular/material/select/testing';
import { MatProgressSpinnerHarness } from '@angular/material/progress-spinner/testing';
import { NoopAuthModule, NoopTranslateModule } from '@alfresco/adf-core';
import { NoopAuthModule } from '@alfresco/adf-core';
import { ApolloTestingModule } from 'apollo-angular/testing';
import { DateAdapter, MAT_DATE_LOCALE } from '@angular/material/core';
import { DateFnsAdapter } from '@angular/material-date-fns-adapter';
import { NoopAnimationsModule } from '@angular/platform-browser/animations';
describe('EditServiceTaskFilterCloudComponent', () => {
let loader: HarnessLoader;
@@ -57,14 +56,7 @@ describe('EditServiceTaskFilterCloudComponent', () => {
beforeEach(() => {
TestBed.configureTestingModule({
imports: [
MatIconTestingModule,
NoopAnimationsModule,
EditServiceTaskFilterCloudComponent,
NoopTranslateModule,
ApolloTestingModule,
NoopAuthModule
],
imports: [MatIconTestingModule, EditServiceTaskFilterCloudComponent, ApolloTestingModule, NoopAuthModule],
providers: [
MatDialog,
{ provide: TASK_FILTERS_SERVICE_TOKEN, useClass: LocalPreferenceCloudService },
@@ -54,12 +54,11 @@ import { TestbedHarnessEnvironment } from '@angular/cdk/testing/testbed';
import { MatSelectHarness } from '@angular/material/select/testing';
import { MatExpansionPanelHarness } from '@angular/material/expansion/testing';
import { MatProgressSpinnerHarness } from '@angular/material/progress-spinner/testing';
import { PeopleCloudComponent } from '@alfresco/adf-process-services-cloud';
import { ApolloTestingModule } from 'apollo-angular/testing';
import { ADF_DATE_FORMATS, NoopAuthModule, NoopTranslateModule } from '@alfresco/adf-core';
import { NoopAnimationsModule } from '@angular/platform-browser/animations';
import { ADF_DATE_FORMATS, NoopAuthModule } from '@alfresco/adf-core';
import { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';
import { DateFnsAdapter } from '@angular/material-date-fns-adapter';
import { PeopleCloudComponent } from '../../../../../people/components/people-cloud.component';
describe('EditTaskFilterCloudComponent', () => {
let loader: HarnessLoader;
@@ -77,15 +76,7 @@ describe('EditTaskFilterCloudComponent', () => {
beforeEach(() => {
TestBed.configureTestingModule({
imports: [
NoopAuthModule,
NoopAnimationsModule,
NoopTranslateModule,
PeopleCloudComponent,
MatIconTestingModule,
EditTaskFilterCloudComponent,
ApolloTestingModule
],
imports: [NoopAuthModule, PeopleCloudComponent, MatIconTestingModule, EditTaskFilterCloudComponent, ApolloTestingModule],
providers: [
MatDialog,
{ provide: TASK_FILTERS_SERVICE_TOKEN, useClass: LocalPreferenceCloudService },
@@ -21,10 +21,10 @@ import { of, throwError } from 'rxjs';
import { TASK_FILTERS_SERVICE_TOKEN } from '../../../../services/cloud-token.service';
import { LocalPreferenceCloudService } from '../../../../services/local-preference-cloud.service';
import { By } from '@angular/platform-browser';
import { ProcessServiceCloudTestingModule } from '../../../../testing/process-service-cloud.testing.module';
import { fakeGlobalServiceFilters } from '../../mock/task-filters-cloud.mock';
import { ServiceTaskFilterCloudService } from '../../services/service-task-filter-cloud.service';
import { ServiceTaskFiltersCloudComponent } from './service-task-filters-cloud.component';
import { NoopAuthModule, NoopTranslateModule } from '@alfresco/adf-core';
describe('ServiceTaskFiltersCloudComponent', () => {
let serviceTaskFilterCloudService: ServiceTaskFilterCloudService;
@@ -35,7 +35,7 @@ describe('ServiceTaskFiltersCloudComponent', () => {
beforeEach(() => {
TestBed.configureTestingModule({
imports: [ProcessServiceCloudTestingModule, ServiceTaskFiltersCloudComponent],
imports: [NoopTranslateModule, NoopAuthModule, ServiceTaskFiltersCloudComponent],
providers: [{ provide: TASK_FILTERS_SERVICE_TOKEN, useClass: LocalPreferenceCloudService }]
});
fixture = TestBed.createComponent(ServiceTaskFiltersCloudComponent);
@@ -27,8 +27,8 @@ import { HarnessLoader } from '@angular/cdk/testing';
import { TestbedHarnessEnvironment } from '@angular/cdk/testing/testbed';
import { MatSelectHarness } from '@angular/material/select/testing';
import { MatFormFieldHarness } from '@angular/material/form-field/testing';
import { ProcessServiceCloudTestingModule } from '../../../../testing/process-service-cloud.testing.module';
import { GroupCloudComponent } from '@alfresco/adf-process-services-cloud';
import { NoopTranslateModule, NoopAuthModule } from '@alfresco/adf-core';
import { GroupCloudComponent } from '../../../../group/components/group-cloud.component';
describe('TaskAssignmentFilterComponent', () => {
let component: TaskAssignmentFilterCloudComponent;
@@ -57,7 +57,7 @@ describe('TaskAssignmentFilterComponent', () => {
beforeEach(() => {
TestBed.configureTestingModule({
imports: [ProcessServiceCloudTestingModule, GroupCloudComponent, TaskAssignmentFilterCloudComponent]
imports: [NoopTranslateModule, NoopAuthModule, GroupCloudComponent, TaskAssignmentFilterCloudComponent]
});
});
@@ -18,7 +18,7 @@
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
import { TaskFilterDialogCloudComponent } from './task-filter-dialog-cloud.component';
import { ProcessServiceCloudTestingModule } from '../../../../testing/process-service-cloud.testing.module';
import { NoopTranslateModule } from '@alfresco/adf-core';
describe('TaskFilterDialogCloudComponent', () => {
let component: TaskFilterDialogCloudComponent;
@@ -35,7 +35,7 @@ describe('TaskFilterDialogCloudComponent', () => {
beforeEach(() => {
TestBed.configureTestingModule({
imports: [ProcessServiceCloudTestingModule, TaskFilterDialogCloudComponent],
imports: [NoopTranslateModule, TaskFilterDialogCloudComponent],
providers: [
{ provide: MatDialogRef, useValue: mockDialogRef },
{ provide: MAT_DIALOG_DATA, useValue: mockDialogData }
@@ -15,7 +15,7 @@
* limitations under the License.
*/
import { AppConfigService, NoopAuthModule, NoopTranslateModule } from '@alfresco/adf-core';
import { AppConfigService, NoopAuthModule } from '@alfresco/adf-core';
import { SimpleChange } from '@angular/core';
import { ComponentFixture, TestBed, fakeAsync, flush } from '@angular/core/testing';
import { By } from '@angular/platform-browser';
@@ -31,7 +31,6 @@ import { MatActionListItemHarness } from '@angular/material/list/testing';
import { TestbedHarnessEnvironment } from '@angular/cdk/testing/testbed';
import { TaskFilterCloudAdapter } from '../../../../models/filter-cloud-model';
import { ApolloTestingModule } from 'apollo-angular/testing';
import { NoopAnimationsModule } from '@angular/platform-browser/animations';
import { TaskFilterCloudModel } from '../../models/filter-cloud.model';
describe('TaskFiltersCloudComponent', () => {
@@ -48,7 +47,7 @@ describe('TaskFiltersCloudComponent', () => {
const configureTestingModule = (searchApiMethod: 'GET' | 'POST') => {
TestBed.configureTestingModule({
imports: [NoopAuthModule, NoopAnimationsModule, NoopTranslateModule, TaskFiltersCloudComponent, ApolloTestingModule],
imports: [NoopAuthModule, TaskFiltersCloudComponent, ApolloTestingModule],
providers: [{ provide: TASK_FILTERS_SERVICE_TOKEN, useClass: LocalPreferenceCloudService }]
});
taskFilterService = TestBed.inject(TaskFilterCloudService);
@@ -30,13 +30,11 @@ import {
} from '../mock/task-filters-cloud.mock';
import { UserPreferenceCloudService } from '../../../services/user-preference-cloud.service';
import { PreferenceCloudServiceInterface } from '../../../services/preference-cloud.interface';
import { HttpClientTestingModule } from '@angular/common/http/testing';
import { NotificationCloudService } from '../../../services/notification-cloud.service';
import { ProcessServiceCloudTestingModule } from '../../../testing/process-service-cloud.testing.module';
import { IdentityUserService } from '../../../people/services/identity-user.service';
import { StorageService } from '@alfresco/adf-core';
import { TaskStatusFilter } from '../public-api';
import { ApolloTestingModule } from 'apollo-angular/testing';
import { StorageService, NoopAuthModule, NoopTranslateModule } from '@alfresco/adf-core';
import { TaskStatusFilter } from '../models/filter-cloud.model';
describe('TaskFilterCloudService', () => {
let service: TaskFilterCloudService;
@@ -56,7 +54,7 @@ describe('TaskFilterCloudService', () => {
beforeEach(() => {
TestBed.configureTestingModule({
imports: [HttpClientTestingModule, ProcessServiceCloudTestingModule, ApolloTestingModule],
imports: [NoopTranslateModule, NoopAuthModule, ApolloTestingModule],
providers: [{ provide: TASK_FILTERS_SERVICE_TOKEN, useClass: UserPreferenceCloudService }]
});
service = TestBed.inject(TaskFilterCloudService);
@@ -265,7 +263,7 @@ describe('Inject [LocalPreferenceCloudService] into the TaskFilterCloudService',
beforeEach(() => {
TestBed.configureTestingModule({
imports: [HttpClientTestingModule, ProcessServiceCloudTestingModule, ApolloTestingModule],
imports: [NoopTranslateModule, NoopAuthModule, ApolloTestingModule],
providers: [{ provide: TASK_FILTERS_SERVICE_TOKEN, useClass: LocalPreferenceCloudService }]
});
service = TestBed.inject(TaskFilterCloudService);
@@ -15,14 +15,12 @@
* limitations under the License.
*/
import { FormModel, FormOutcomeEvent, FormOutcomeModel } from '@alfresco/adf-core';
import { FormCustomOutcomesComponent } from '@alfresco/adf-process-services-cloud';
import { FormModel, FormOutcomeEvent, FormOutcomeModel, NoopAuthModule, NoopTranslateModule } from '@alfresco/adf-core';
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { of } from 'rxjs';
import { FormCloudComponent } from '../../../../form/components/form-cloud.component';
import { DisplayModeService } from '../../../../form/services/display-mode.service';
import { IdentityUserService } from '../../../../people/services/identity-user.service';
import { ProcessServiceCloudTestingModule } from '../../../../testing/process-service-cloud.testing.module';
import { TaskCloudService } from '../../../services/task-cloud.service';
import {
TASK_ASSIGNED_STATE,
@@ -34,6 +32,7 @@ import {
} from '../../../models/task-details-cloud.model';
import { UserTaskCloudButtonsComponent } from '../user-task-cloud-buttons/user-task-cloud-buttons.component';
import { TaskFormCloudComponent } from './task-form-cloud.component';
import { FormCustomOutcomesComponent } from '../../../../form/components/form-cloud-custom-outcomes.component';
const taskDetails: TaskDetailsCloudModel = {
appName: 'simple-app',
@@ -61,7 +60,8 @@ describe('TaskFormCloudComponent', () => {
beforeEach(() => {
TestBed.configureTestingModule({
imports: [
ProcessServiceCloudTestingModule,
NoopTranslateModule,
NoopAuthModule,
FormCloudComponent,
FormCustomOutcomesComponent,
UserTaskCloudButtonsComponent,
@@ -21,8 +21,8 @@ import { TaskCloudService } from '../../../../services/task-cloud.service';
import { of, throwError } from 'rxjs';
import { ClaimTaskCloudDirective } from './claim-task-cloud.directive';
import { taskClaimCloudMock } from '../../../../task-header/mocks/fake-claim-task.mock';
import { ProcessServiceCloudTestingModule } from '../../../../../testing/process-service-cloud.testing.module';
import { By } from '@angular/platform-browser';
import { NoopTranslateModule, NoopAuthModule } from '@alfresco/adf-core';
describe('ClaimTaskCloudDirective', () => {
@Component({
@@ -48,8 +48,7 @@ describe('ClaimTaskCloudDirective', () => {
beforeEach(() => {
TestBed.configureTestingModule({
imports: [ProcessServiceCloudTestingModule, TestComponent],
declarations: []
imports: [NoopTranslateModule, NoopAuthModule, TestComponent]
});
taskCloudService = TestBed.inject(TaskCloudService);
fixture = TestBed.createComponent(TestComponent);
@@ -151,38 +150,36 @@ describe('Claim Task Directive validation errors', () => {
claimTaskValidationDirective: ClaimTaskCloudDirective;
}
let fixture: ComponentFixture<any>;
beforeEach(() => {
TestBed.configureTestingModule({
imports: [
ProcessServiceCloudTestingModule,
NoopTranslateModule,
NoopAuthModule,
ClaimTestMissingTaskIdDirectiveComponent,
ClaimTestInvalidAppNameUndefinedDirectiveComponent,
ClaimTestInvalidAppNameNullDirectiveComponent,
ClaimTestMissingInputDirectiveComponent
]
});
fixture = TestBed.createComponent(ClaimTestMissingInputDirectiveComponent);
});
it('should throw error when missing input', () => {
fixture = TestBed.createComponent(ClaimTestMissingInputDirectiveComponent);
const fixture = TestBed.createComponent(ClaimTestMissingInputDirectiveComponent);
expect(() => fixture.detectChanges()).toThrowError();
});
it('should throw error when taskId is not set', () => {
fixture = TestBed.createComponent(ClaimTestMissingTaskIdDirectiveComponent);
const fixture = TestBed.createComponent(ClaimTestMissingTaskIdDirectiveComponent);
expect(() => fixture.detectChanges()).toThrowError('Attribute taskId is required');
});
it('should throw error when appName is undefined', () => {
fixture = TestBed.createComponent(ClaimTestInvalidAppNameUndefinedDirectiveComponent);
const fixture = TestBed.createComponent(ClaimTestInvalidAppNameUndefinedDirectiveComponent);
expect(() => fixture.detectChanges()).toThrowError('Attribute appName is required');
});
it('should throw error when appName is null', () => {
fixture = TestBed.createComponent(ClaimTestInvalidAppNameUndefinedDirectiveComponent);
const fixture = TestBed.createComponent(ClaimTestInvalidAppNameUndefinedDirectiveComponent);
expect(() => fixture.detectChanges()).toThrowError('Attribute appName is required');
});
});
@@ -21,8 +21,8 @@ import { TaskCloudService } from '../../../../services/task-cloud.service';
import { of, throwError } from 'rxjs';
import { UnClaimTaskCloudDirective } from './unclaim-task-cloud.directive';
import { taskClaimCloudMock } from '../../../../task-header/mocks/fake-claim-task.mock';
import { ProcessServiceCloudTestingModule } from '../../../../../testing/process-service-cloud.testing.module';
import { By } from '@angular/platform-browser';
import { NoopAuthModule, NoopTranslateModule } from '@alfresco/adf-core';
describe('UnClaimTaskCloudDirective', () => {
@Component({
@@ -48,7 +48,7 @@ describe('UnClaimTaskCloudDirective', () => {
beforeEach(() => {
TestBed.configureTestingModule({
imports: [ProcessServiceCloudTestingModule, TestComponent]
imports: [NoopTranslateModule, NoopAuthModule, TestComponent]
});
taskCloudService = TestBed.inject(TaskCloudService);
fixture = TestBed.createComponent(TestComponent);
@@ -150,38 +150,36 @@ describe('UnClaim Task Directive validation errors', () => {
claimTaskValidationDirective: UnClaimTaskCloudDirective;
}
let fixture: ComponentFixture<any>;
beforeEach(() => {
TestBed.configureTestingModule({
imports: [
ProcessServiceCloudTestingModule,
NoopTranslateModule,
NoopAuthModule,
ClaimTestMissingTaskIdDirectiveComponent,
ClaimTestInvalidAppNameUndefinedDirectiveComponent,
ClaimTestInvalidAppNameNullDirectiveComponent,
ClaimTestMissingInputDirectiveComponent
]
});
fixture = TestBed.createComponent(ClaimTestMissingInputDirectiveComponent);
});
it('should throw error when missing input', () => {
fixture = TestBed.createComponent(ClaimTestMissingInputDirectiveComponent);
const fixture = TestBed.createComponent(ClaimTestMissingInputDirectiveComponent);
expect(() => fixture.detectChanges()).toThrowError();
});
it('should throw error when taskId is not set', () => {
fixture = TestBed.createComponent(ClaimTestMissingTaskIdDirectiveComponent);
const fixture = TestBed.createComponent(ClaimTestMissingTaskIdDirectiveComponent);
expect(() => fixture.detectChanges()).toThrowError('Attribute taskId is required');
});
it('should throw error when appName is undefined', () => {
fixture = TestBed.createComponent(ClaimTestInvalidAppNameUndefinedDirectiveComponent);
const fixture = TestBed.createComponent(ClaimTestInvalidAppNameUndefinedDirectiveComponent);
expect(() => fixture.detectChanges()).toThrowError('Attribute appName is required');
});
it('should throw error when appName is null', () => {
fixture = TestBed.createComponent(ClaimTestInvalidAppNameUndefinedDirectiveComponent);
const fixture = TestBed.createComponent(ClaimTestInvalidAppNameUndefinedDirectiveComponent);
expect(() => fixture.detectChanges()).toThrowError('Attribute appName is required');
});
});
@@ -22,9 +22,9 @@ import { HarnessLoader } from '@angular/cdk/testing';
import { MatButtonHarness } from '@angular/material/button/testing';
import { By } from '@angular/platform-browser';
import { DebugElement } from '@angular/core';
import { ProcessServiceCloudTestingModule } from 'lib/process-services-cloud/src/lib/testing/process-service-cloud.testing.module';
import { TaskCloudService } from '@alfresco/adf-process-services-cloud';
import { of } from 'rxjs';
import { NoopAuthModule } from '@alfresco/adf-core';
import { TaskCloudService } from '../../../services/task-cloud.service';
describe('UserTaskCloudButtonsComponent', () => {
let component: UserTaskCloudButtonsComponent;
@@ -35,7 +35,7 @@ describe('UserTaskCloudButtonsComponent', () => {
beforeEach(() => {
TestBed.configureTestingModule({
imports: [ProcessServiceCloudTestingModule, UserTaskCloudButtonsComponent]
imports: [NoopAuthModule, UserTaskCloudButtonsComponent]
});
fixture = TestBed.createComponent(UserTaskCloudButtonsComponent);
debugElement = fixture.debugElement;
@@ -21,8 +21,8 @@ import { ComponentFixture, TestBed } from '@angular/core/testing';
import { of, throwError } from 'rxjs';
import { taskCompleteCloudMock } from '../../../../task-header/mocks/fake-complete-task.mock';
import { TaskCloudService } from '../../../../services/task-cloud.service';
import { ProcessServiceCloudTestingModule } from '../../../../../testing/process-service-cloud.testing.module';
import { By } from '@angular/platform-browser';
import { NoopTranslateModule, NoopAuthModule } from '@alfresco/adf-core';
describe('CompleteTaskDirective', () => {
@Component({
@@ -58,7 +58,7 @@ describe('CompleteTaskDirective', () => {
beforeEach(() => {
TestBed.configureTestingModule({
imports: [ProcessServiceCloudTestingModule, TestComponent]
imports: [NoopTranslateModule, NoopAuthModule, TestComponent]
});
taskCloudService = TestBed.inject(TaskCloudService);
fixture = TestBed.createComponent(TestComponent);
@@ -176,37 +176,36 @@ describe('Complete Task Directive validation errors', () => {
}
}
let fixture: ComponentFixture<any>;
beforeEach(() => {
TestBed.configureTestingModule({
imports: [
ProcessServiceCloudTestingModule,
NoopTranslateModule,
NoopAuthModule,
TestMissingTaskIdDirectiveComponent,
TestInvalidAppNameUndefinedDirectiveComponent,
TestInvalidAppNameNullDirectiveComponent,
TestMissingInputDirectiveComponent
]
});
fixture = TestBed.createComponent(TestMissingInputDirectiveComponent);
});
it('should throw error when missing input', () => {
const fixture = TestBed.createComponent(TestMissingInputDirectiveComponent);
expect(() => fixture.detectChanges()).toThrowError();
});
it('should throw error when taskId is not set', () => {
fixture = TestBed.createComponent(TestMissingTaskIdDirectiveComponent);
const fixture = TestBed.createComponent(TestMissingTaskIdDirectiveComponent);
expect(() => fixture.detectChanges()).toThrowError('Attribute taskId is required');
});
it('should throw error when appName is undefined', () => {
fixture = TestBed.createComponent(TestInvalidAppNameUndefinedDirectiveComponent);
const fixture = TestBed.createComponent(TestInvalidAppNameUndefinedDirectiveComponent);
expect(() => fixture.detectChanges()).toThrowError('Attribute appName is required');
});
it('should throw error when appName is null', () => {
fixture = TestBed.createComponent(TestInvalidAppNameUndefinedDirectiveComponent);
const fixture = TestBed.createComponent(TestInvalidAppNameUndefinedDirectiveComponent);
expect(() => fixture.detectChanges()).toThrowError('Attribute appName is required');
});
});
@@ -15,16 +15,6 @@
* limitations under the License.
*/
import {
TASK_ASSIGNED_STATE,
TASK_CLAIM_PERMISSION,
TASK_CREATED_STATE,
TASK_RELEASE_PERMISSION,
TASK_VIEW_PERMISSION,
TaskCloudService,
TaskDetailsCloudModel,
TaskFormCloudComponent
} from '@alfresco/adf-process-services-cloud';
import { HarnessLoader } from '@angular/cdk/testing';
import { TestbedHarnessEnvironment } from '@angular/cdk/testing/testbed';
import { Component, EventEmitter, Input, Output, SimpleChange } from '@angular/core';
@@ -32,13 +22,23 @@ import { ComponentFixture, TestBed } from '@angular/core/testing';
import { MatButtonHarness } from '@angular/material/button/testing';
import { MatCardHarness } from '@angular/material/card/testing';
import { MatProgressSpinnerHarness } from '@angular/material/progress-spinner/testing';
import { ProcessServiceCloudTestingModule } from 'lib/process-services-cloud/src/lib/testing/process-service-cloud.testing.module';
import { of, throwError } from 'rxjs';
import { IdentityUserService } from '../../../../people/services/identity-user.service';
import { UserTaskCloudComponent } from './user-task-cloud.component';
import { By } from '@angular/platform-browser';
import { TaskScreenCloudComponent } from '../../../../screen/components/screen-cloud/screen-cloud.component';
import { MatCheckboxChange } from '@angular/material/checkbox';
import { NoopAuthModule, NoopTranslateModule } from '@alfresco/adf-core';
import {
TASK_ASSIGNED_STATE,
TASK_CLAIM_PERMISSION,
TASK_CREATED_STATE,
TASK_RELEASE_PERMISSION,
TASK_VIEW_PERMISSION,
TaskDetailsCloudModel
} from '../../../models/task-details-cloud.model';
import { TaskFormCloudComponent } from '../task-form-cloud/task-form-cloud.component';
import { TaskCloudService } from '../../../services/task-cloud.service';
const taskDetails: TaskDetailsCloudModel = {
appName: 'simple-app',
@@ -95,7 +95,7 @@ describe('UserTaskCloudComponent', () => {
beforeEach(() => {
TestBed.configureTestingModule({
imports: [ProcessServiceCloudTestingModule, UserTaskCloudComponent, TaskFormCloudComponent]
imports: [NoopTranslateModule, NoopAuthModule, UserTaskCloudComponent, TaskFormCloudComponent]
}).overrideComponent(UserTaskCloudComponent, {
remove: { imports: [TaskScreenCloudComponent] },
add: { imports: [TaskScreenCloudMockComponent] }
@@ -20,7 +20,7 @@ import { of, throwError } from 'rxjs';
import { By } from '@angular/platform-browser';
import { ComponentFixture, TestBed, fakeAsync, flush, discardPeriodicTasks } from '@angular/core/testing';
import { AlfrescoApiService } from '@alfresco/adf-content-services';
import { AppConfigService, NoopAuthModule, NoopTranslateModule } from '@alfresco/adf-core';
import { AppConfigService, NoopAuthModule } from '@alfresco/adf-core';
import { TaskCloudService } from '../../services/task-cloud.service';
import {
assignedTaskDetailsCloudMock,
@@ -33,8 +33,6 @@ import {
import { HarnessLoader } from '@angular/cdk/testing';
import { TestbedHarnessEnvironment } from '@angular/cdk/testing/testbed';
import { MatSelectHarness } from '@angular/material/select/testing';
import { HttpClientTestingModule } from '@angular/common/http/testing';
import { NoopAnimationsModule } from '@angular/platform-browser/animations';
describe('TaskHeaderCloudComponent', () => {
let component: TaskHeaderCloudComponent;
@@ -61,7 +59,7 @@ describe('TaskHeaderCloudComponent', () => {
beforeEach(() => {
TestBed.configureTestingModule({
imports: [TaskHeaderCloudComponent, HttpClientTestingModule, NoopTranslateModule, NoopAuthModule, NoopAnimationsModule]
imports: [TaskHeaderCloudComponent, NoopAuthModule]
});
appConfigService = TestBed.inject(AppConfigService);
appConfigService.config = {
@@ -18,17 +18,25 @@
import { Component, SimpleChange, ViewChild } from '@angular/core';
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { By } from '@angular/platform-browser';
import { AppConfigService, DataRowEvent, ObjectDataRow } from '@alfresco/adf-core';
import {
AppConfigService,
DataRowEvent,
ObjectDataRow,
NoopAuthModule,
DataColumnComponent,
DataColumnListComponent,
CustomEmptyContentTemplateDirective
} from '@alfresco/adf-core';
import { ServiceTaskListCloudComponent } from './service-task-list-cloud.component';
import { fakeServiceTask, fakeCustomSchema } from '../../mock/fake-task-response.mock';
import { of } from 'rxjs';
import { ProcessServiceCloudTestingModule } from '../../../../testing/process-service-cloud.testing.module';
import { TaskListCloudSortingModel } from '../../../../models/task-list-sorting.model';
import { shareReplay, skip } from 'rxjs/operators';
import { ServiceTaskListCloudService } from '../../services/service-task-list-cloud.service';
import { HarnessLoader } from '@angular/cdk/testing';
import { TestbedHarnessEnvironment } from '@angular/cdk/testing/testbed';
import { MatProgressSpinnerHarness } from '@angular/material/progress-spinner/testing';
import { provideCloudPreferences } from '../../../../providers';
@Component({
template: ` <adf-cloud-service-task-list #taskListCloud>
@@ -36,12 +44,15 @@ import { MatProgressSpinnerHarness } from '@angular/material/progress-spinner/te
<data-column key="activityName" title="ADF_CLOUD_TASK_LIST.PROPERTIES.NAME" class="adf-full-width adf-name-column" [order]="2" />
<data-column key="startedDate" title="ADF_CLOUD_TASK_LIST.PROPERTIES.CREATED" class="adf-hidden" />
</data-columns>
</adf-cloud-service-task-list>`
</adf-cloud-service-task-list>`,
standalone: true,
imports: [ServiceTaskListCloudComponent, DataColumnComponent, DataColumnListComponent]
})
class CustomTaskListComponent {
@ViewChild(ServiceTaskListCloudComponent)
taskList: ServiceTaskListCloudComponent;
}
@Component({
template: `
<adf-cloud-service-task-list>
@@ -49,16 +60,21 @@ class CustomTaskListComponent {
<p id="custom-id"></p>
</adf-custom-empty-content-template>
</adf-cloud-service-task-list>
`
`,
standalone: true,
imports: [CustomEmptyContentTemplateDirective, ServiceTaskListCloudComponent]
})
class EmptyTemplateComponent {}
@Component({
template: ` <adf-cloud-service-task-list>
<data-columns>
<data-column [copyContent]="true" key="id" title="ADF_CLOUD_TASK_LIST.PROPERTIES.ID" />
<data-column key="activityName" title="ADF_CLOUD_TASK_LIST.PROPERTIES.NAME" />
</data-columns>
</adf-cloud-service-task-list>`
</adf-cloud-service-task-list>`,
standalone: true,
imports: [ServiceTaskListCloudComponent, DataColumnComponent, DataColumnListComponent]
})
class CustomCopyContentTaskListComponent {
@ViewChild(ServiceTaskListCloudComponent, { static: true })
@@ -69,18 +85,18 @@ describe('ServiceTaskListCloudComponent', () => {
let loader: HarnessLoader;
let component: ServiceTaskListCloudComponent;
let fixture: ComponentFixture<ServiceTaskListCloudComponent>;
let appConfig: AppConfigService;
let serviceTaskListCloudService: ServiceTaskListCloudService;
let getServiceTaskByRequestSpy: jasmine.Spy;
beforeEach(() => {
TestBed.configureTestingModule({
imports: [ProcessServiceCloudTestingModule],
declarations: [EmptyTemplateComponent]
imports: [NoopAuthModule, ServiceTaskListCloudComponent, EmptyTemplateComponent],
providers: [provideCloudPreferences()]
});
appConfig = TestBed.inject(AppConfigService);
serviceTaskListCloudService = TestBed.inject(ServiceTaskListCloudService);
fixture = TestBed.createComponent(ServiceTaskListCloudComponent);
component = fixture.componentInstance;
const serviceTaskListCloudService = TestBed.inject(ServiceTaskListCloudService);
getServiceTaskByRequestSpy = spyOn(serviceTaskListCloudService, 'getServiceTaskByRequest');
const appConfig = TestBed.inject(AppConfigService);
appConfig.config = Object.assign(appConfig.config, {
'adf-cloud-service-task-list': {
presets: {
@@ -102,6 +118,9 @@ describe('ServiceTaskListCloudComponent', () => {
}
});
fixture = TestBed.createComponent(ServiceTaskListCloudComponent);
component = fixture.componentInstance;
component.isColumnSchemaCreated$ = of(true).pipe(shareReplay(1));
loader = TestbedHarnessEnvironment.loader(fixture);
});
@@ -118,7 +137,7 @@ describe('ServiceTaskListCloudComponent', () => {
it('should display empty content when process list is empty', async () => {
const emptyList = { list: { entries: [] } };
spyOn(serviceTaskListCloudService, 'getServiceTaskByRequest').and.returnValue(of(emptyList));
getServiceTaskByRequestSpy.and.returnValue(of(emptyList));
fixture.detectChanges();
expect(await loader.hasHarness(MatProgressSpinnerHarness)).toBe(false);
@@ -128,7 +147,7 @@ describe('ServiceTaskListCloudComponent', () => {
});
it('should load spinner and show the content', async () => {
spyOn(serviceTaskListCloudService, 'getServiceTaskByRequest').and.returnValue(of(fakeServiceTask));
getServiceTaskByRequestSpy.and.returnValue(of(fakeServiceTask));
const appName = new SimpleChange(null, 'FAKE-APP-NAME', true);
fixture.detectChanges();
@@ -164,7 +183,7 @@ describe('ServiceTaskListCloudComponent', () => {
});
it('should reload tasks when reload() is called', (done) => {
spyOn(serviceTaskListCloudService, 'getServiceTaskByRequest').and.returnValue(of(fakeServiceTask));
getServiceTaskByRequestSpy.and.returnValue(of(fakeServiceTask));
component.success.subscribe((res) => {
expect(res).toBeDefined();
expect(component.rows).toBeDefined();
@@ -214,7 +233,7 @@ describe('ServiceTaskListCloudComponent', () => {
it('should call endpoint when a column visibility gets changed', () => {
const emptyList = { list: { entries: [] } };
spyOn(serviceTaskListCloudService, 'getServiceTaskByRequest').and.returnValue(of(emptyList));
getServiceTaskByRequestSpy.and.returnValue(of(emptyList));
component.ngAfterContentInit();
spyOn(component, 'createDatatableSchema');
component.appName = 'fake-app-name';
@@ -225,7 +244,7 @@ describe('ServiceTaskListCloudComponent', () => {
fixture.detectChanges();
expect(serviceTaskListCloudService.getServiceTaskByRequest).toHaveBeenCalledTimes(1);
expect(getServiceTaskByRequestSpy).toHaveBeenCalledTimes(1);
});
describe('component changes', () => {
@@ -235,14 +254,13 @@ describe('ServiceTaskListCloudComponent', () => {
});
it('should NOT reload the task list when no parameters changed', () => {
spyOn(serviceTaskListCloudService, 'getServiceTaskByRequest');
component.rows = null;
fixture.detectChanges();
expect(component.isListEmpty()).toBeTruthy();
});
it('should reload the task list when input parameters changed', () => {
const getServiceTaskByRequestSpy = spyOn(serviceTaskListCloudService, 'getServiceTaskByRequest').and.returnValue(of(fakeServiceTask));
getServiceTaskByRequestSpy.and.returnValue(of(fakeServiceTask));
component.appName = 'mock-app-name';
component.queryParams.status = 'mock-status';
const queryParams = new SimpleChange(undefined, { status: 'mock-status' }, true);
@@ -255,7 +273,7 @@ describe('ServiceTaskListCloudComponent', () => {
});
it('should set formattedSorting if sorting input changes', () => {
spyOn(serviceTaskListCloudService, 'getServiceTaskByRequest').and.returnValue(of(fakeServiceTask));
getServiceTaskByRequestSpy.and.returnValue(of(fakeServiceTask));
spyOn(component, 'formatSorting').and.callThrough();
component.appName = 'mock-app-name';
@@ -275,7 +293,7 @@ describe('ServiceTaskListCloudComponent', () => {
});
it('should reload task list when sorting on a column changes', () => {
const getServiceTaskByRequestSpy = spyOn(serviceTaskListCloudService, 'getServiceTaskByRequest').and.returnValue(of(fakeServiceTask));
getServiceTaskByRequestSpy.and.returnValue(of(fakeServiceTask));
component.onSortingChanged(
new CustomEvent('sorting-changed', {
detail: {
@@ -298,7 +316,7 @@ describe('ServiceTaskListCloudComponent', () => {
});
it('should reset pagination when resetPaginationValues is called', (done) => {
spyOn(serviceTaskListCloudService, 'getServiceTaskByRequest').and.returnValue(of(fakeServiceTask));
getServiceTaskByRequestSpy.and.returnValue(of(fakeServiceTask));
const size = component.size;
const skipCount = component.skipCount;
@@ -321,7 +339,7 @@ describe('ServiceTaskListCloudComponent', () => {
});
it('should set pagination and reload when updatePagination is called', (done) => {
spyOn(serviceTaskListCloudService, 'getServiceTaskByRequest').and.returnValue(of(fakeServiceTask));
getServiceTaskByRequestSpy.and.returnValue(of(fakeServiceTask));
spyOn(component, 'reload').and.stub();
const pagination = {
@@ -347,15 +365,14 @@ describe('ServiceTaskListCloudComponent: Injecting custom columns for task list
let componentCustom: CustomTaskListComponent;
let customCopyComponent: CustomCopyContentTaskListComponent;
let copyFixture: ComponentFixture<CustomCopyContentTaskListComponent>;
let serviceTaskListCloudService: ServiceTaskListCloudService;
beforeEach(() => {
TestBed.configureTestingModule({
imports: [ProcessServiceCloudTestingModule],
declarations: [CustomTaskListComponent, CustomCopyContentTaskListComponent]
imports: [NoopAuthModule, CustomTaskListComponent, CustomCopyContentTaskListComponent],
providers: [provideCloudPreferences()]
});
serviceTaskListCloudService = TestBed.inject(ServiceTaskListCloudService);
const serviceTaskListCloudService = TestBed.inject(ServiceTaskListCloudService);
spyOn(serviceTaskListCloudService, 'getServiceTaskByRequest').and.returnValue(of(fakeServiceTask));
fixtureCustom = TestBed.createComponent(CustomTaskListComponent);
@@ -403,16 +420,19 @@ describe('ServiceTaskListCloudComponent: Injecting custom columns for task list
describe('ServiceTaskListCloudComponent: Copy cell content directive from app.config specifications', () => {
let taskSpy: jasmine.Spy;
let appConfig: AppConfigService;
let serviceTaskListCloudService: ServiceTaskListCloudService;
let fixture: ComponentFixture<ServiceTaskListCloudComponent>;
let component: ServiceTaskListCloudComponent;
beforeEach(() => {
TestBed.configureTestingModule({
imports: [ProcessServiceCloudTestingModule]
imports: [NoopAuthModule, ServiceTaskListCloudComponent],
providers: [provideCloudPreferences()]
});
const serviceTaskListCloudService = TestBed.inject(ServiceTaskListCloudService);
taskSpy = spyOn(serviceTaskListCloudService, 'getServiceTaskByRequest').and.returnValue(of(fakeServiceTask));
appConfig = TestBed.inject(AppConfigService);
serviceTaskListCloudService = TestBed.inject(ServiceTaskListCloudService);
appConfig.config = Object.assign(appConfig.config, {
'adf-cloud-service-task-list': {
presets: {
@@ -436,7 +456,6 @@ describe('ServiceTaskListCloudComponent: Copy cell content directive from app.co
});
fixture = TestBed.createComponent(ServiceTaskListCloudComponent);
component = fixture.componentInstance;
taskSpy = spyOn(serviceTaskListCloudService, 'getServiceTaskByRequest').and.returnValue(of(fakeServiceTask));
});
afterEach(() => {
fixture.destroy();
@@ -27,22 +27,20 @@ import {
ColumnsSelectorComponent,
DataColumnListComponent,
DataColumnComponent,
CustomEmptyContentTemplateDirective
CustomEmptyContentTemplateDirective,
NoopAuthModule
} from '@alfresco/adf-core';
import { TaskListCloudService } from '../../services/task-list-cloud.service';
import { TaskListCloudComponent } from './task-list-cloud.component';
import { fakeGlobalTasks, fakeCustomSchema, fakeGlobalTask } from '../../mock/fake-task-response.mock';
import { of } from 'rxjs';
import { ProcessServiceCloudTestingModule } from '../../../../testing/process-service-cloud.testing.module';
import { TaskListCloudSortingModel } from '../../../../models/task-list-sorting.model';
import { shareReplay, skip } from 'rxjs/operators';
import { TaskListCloudServiceInterface } from '../../../../services/task-list-cloud.service.interface';
import { TASK_LIST_CLOUD_TOKEN, TASK_LIST_PREFERENCES_SERVICE_TOKEN } from '../../../../services/cloud-token.service';
import { TaskListCloudModule } from '../../task-list-cloud.module';
import { PreferenceCloudServiceInterface } from '../../../../services/preference-cloud.interface';
import { HarnessLoader } from '@angular/cdk/testing';
import { TestbedHarnessEnvironment } from '@angular/cdk/testing/testbed';
import { MatProgressSpinnerHarness } from '@angular/material/progress-spinner/testing';
import { provideCloudPreferences } from '../../../../providers';
@Component({
standalone: true,
@@ -106,15 +104,17 @@ describe('TaskListCloudComponent', () => {
let component: TaskListCloudComponent;
let fixture: ComponentFixture<TaskListCloudComponent>;
let appConfig: AppConfigService;
let taskListCloudService: TaskListCloudServiceInterface;
const preferencesService: PreferenceCloudServiceInterface = jasmine.createSpyObj('preferencesService', {
let getTaskByRequestSpy: jasmine.Spy;
let fetchTaskListSpy: jasmine.Spy;
const preferencesService = jasmine.createSpyObj('preferencesService', {
getPreferences: of({}),
updatePreference: of({})
});
const configureTestingModule = (searchApiMethod: 'GET' | 'POST') => {
TestBed.configureTestingModule({
imports: [ProcessServiceCloudTestingModule, TaskListCloudComponent],
imports: [NoopAuthModule, TaskListCloudComponent],
providers: [
{
provide: TASK_LIST_CLOUD_TOKEN,
@@ -129,7 +129,11 @@ describe('TaskListCloudComponent', () => {
appConfig = TestBed.inject(AppConfigService);
fixture = TestBed.createComponent(TaskListCloudComponent);
component = fixture.componentInstance;
taskListCloudService = TestBed.inject(TASK_LIST_CLOUD_TOKEN);
const taskListCloudService = TestBed.inject(TASK_LIST_CLOUD_TOKEN);
getTaskByRequestSpy = spyOn(taskListCloudService, 'getTaskByRequest');
fetchTaskListSpy = spyOn(taskListCloudService, 'fetchTaskList').and.returnValue(of(fakeGlobalTasks));
appConfig.config = Object.assign(appConfig.config, {
'adf-cloud-task-list': {
presets: {
@@ -166,7 +170,7 @@ describe('TaskListCloudComponent', () => {
});
it('should load spinner and show the content', async () => {
spyOn(taskListCloudService, 'getTaskByRequest').and.returnValue(of(fakeGlobalTasks));
getTaskByRequestSpy.and.returnValue(of(fakeGlobalTasks));
const appName = new SimpleChange(null, 'FAKE-APP-NAME', true);
component.ngOnChanges({ appName });
@@ -182,7 +186,7 @@ describe('TaskListCloudComponent', () => {
it('should hide columns on applying new columns visibility through columns selector', () => {
component.showMainDatatableActions = true;
spyOn(taskListCloudService, 'getTaskByRequest').and.returnValue(of(fakeGlobalTasks));
getTaskByRequestSpy.and.returnValue(of(fakeGlobalTasks));
component.ngAfterContentInit();
const appName = new SimpleChange(null, 'FAKE-APP-NAME', true);
@@ -213,7 +217,7 @@ describe('TaskListCloudComponent', () => {
});
it('should return the results if an application name is given', (done) => {
spyOn(taskListCloudService, 'getTaskByRequest').and.returnValue(of(fakeGlobalTasks));
getTaskByRequestSpy.and.returnValue(of(fakeGlobalTasks));
component.success.subscribe((res) => {
expect(res).toBeDefined();
@@ -237,7 +241,6 @@ describe('TaskListCloudComponent', () => {
});
it('should call endpoint when a column visibility gets changed', () => {
spyOn(taskListCloudService, 'getTaskByRequest');
component.ngAfterContentInit();
spyOn(component, 'createDatatableSchema');
component.appName = 'fake-app-name';
@@ -248,8 +251,9 @@ describe('TaskListCloudComponent', () => {
fixture.detectChanges();
expect(taskListCloudService.getTaskByRequest).toHaveBeenCalledTimes(1);
expect(getTaskByRequestSpy).toHaveBeenCalledTimes(1);
});
describe('component changes', () => {
beforeEach(() => {
component.rows = fakeGlobalTasks.list.entries;
@@ -257,7 +261,7 @@ describe('TaskListCloudComponent', () => {
});
it('should reload the task list when input parameters changed', () => {
const getTaskByRequestSpy = spyOn(taskListCloudService, 'getTaskByRequest').and.returnValue(of(fakeGlobalTasks));
getTaskByRequestSpy.and.returnValue(of(fakeGlobalTasks));
component.appName = 'mock-app-name';
component.priority = 1;
component.status = 'mock-status';
@@ -282,7 +286,7 @@ describe('TaskListCloudComponent', () => {
});
it('should reload task list when sorting on a column changes', () => {
const getTaskByRequestSpy = spyOn(taskListCloudService, 'getTaskByRequest').and.returnValue(of(fakeGlobalTasks));
getTaskByRequestSpy.and.returnValue(of(fakeGlobalTasks));
component.onSortingChanged(
new CustomEvent('sorting-changed', {
detail: {
@@ -313,7 +317,6 @@ describe('TaskListCloudComponent', () => {
});
it('should load spinner and show the content', async () => {
spyOn(taskListCloudService, 'fetchTaskList').and.returnValue(of(fakeGlobalTasks));
const appName = new SimpleChange(null, 'FAKE-APP-NAME', true);
fixture.detectChanges();
@@ -330,7 +333,6 @@ describe('TaskListCloudComponent', () => {
it('should hide columns on applying new columns visibility through columns selector', () => {
component.showMainDatatableActions = true;
spyOn(taskListCloudService, 'fetchTaskList').and.returnValue(of(fakeGlobalTasks));
component.ngAfterContentInit();
const appName = new SimpleChange(null, 'FAKE-APP-NAME', true);
@@ -361,8 +363,6 @@ describe('TaskListCloudComponent', () => {
});
it('should return the results if an application name is given', (done) => {
spyOn(taskListCloudService, 'fetchTaskList').and.returnValue(of(fakeGlobalTasks));
component.success.subscribe((res) => {
expect(res).toBeDefined();
expect(component.rows).toBeDefined();
@@ -385,7 +385,6 @@ describe('TaskListCloudComponent', () => {
});
it('should call endpoint when a column visibility gets changed', () => {
const fetchTaskListSpy = spyOn(taskListCloudService, 'fetchTaskList').and.returnValue(of(fakeGlobalTasks));
component.ngAfterContentInit();
spyOn(component, 'createDatatableSchema');
component.appName = 'fake-app-name';
@@ -406,7 +405,6 @@ describe('TaskListCloudComponent', () => {
});
it('should reload the task list when input parameters changed', () => {
const fetchTaskListSpy = spyOn(taskListCloudService, 'fetchTaskList').and.returnValue(of(fakeGlobalTasks));
component.appName = 'mock-app-name';
component.priorities = ['1', '2'];
component.statuses = ['mock-status-1', 'mock-status-2'];
@@ -425,7 +423,6 @@ describe('TaskListCloudComponent', () => {
});
it('should reload task list when sorting on a column changes', () => {
const fetchTaskListSpy = spyOn(taskListCloudService, 'fetchTaskList').and.returnValue(of(fakeGlobalTasks));
fixture.detectChanges();
component.onSortingChanged(
new CustomEvent('sorting-changed', {
@@ -469,7 +466,7 @@ describe('TaskListCloudComponent', () => {
it('should display empty content when process list is empty', async () => {
const emptyList = { list: { entries: [] } };
spyOn(taskListCloudService, 'getTaskByRequest').and.returnValue(of(emptyList));
getTaskByRequestSpy.and.returnValue(of(emptyList));
fixture.detectChanges();
const appName = new SimpleChange(null, 'FAKE-APP-NAME', true);
@@ -598,14 +595,13 @@ describe('TaskListCloudComponent', () => {
});
it('should NOT reload the task list when no parameters changed', () => {
spyOn(taskListCloudService, 'getTaskByRequest');
component.rows = null;
fixture.detectChanges();
expect(component.isListEmpty()).toBeTruthy();
});
it('should set formattedSorting if sorting input changes', () => {
spyOn(taskListCloudService, 'getTaskByRequest').and.returnValue(of(fakeGlobalTasks));
getTaskByRequestSpy.and.returnValue(of(fakeGlobalTasks));
spyOn(component, 'formatSorting').and.callThrough();
component.appName = 'mock-app-name';
@@ -625,7 +621,7 @@ describe('TaskListCloudComponent', () => {
});
it('should reset pagination when resetPaginationValues is called', (done) => {
spyOn(taskListCloudService, 'getTaskByRequest').and.returnValue(of(fakeGlobalTasks));
getTaskByRequestSpy.and.returnValue(of(fakeGlobalTasks));
const size = component.size;
const skipCount = component.skipCount;
@@ -648,7 +644,7 @@ describe('TaskListCloudComponent', () => {
});
it('should set pagination and reload when updatePagination is called', (done) => {
spyOn(taskListCloudService, 'getTaskByRequest').and.returnValue(of(fakeGlobalTasks));
getTaskByRequestSpy.and.returnValue(of(fakeGlobalTasks));
spyOn(component, 'reload').and.stub();
const pagination = {
@@ -675,13 +671,13 @@ describe('TaskListCloudComponent: Injecting custom colums for tasklist - CustomT
let componentCustom: CustomTaskListComponent;
let customCopyComponent: CustomCopyContentTaskListComponent;
let copyFixture: ComponentFixture<CustomCopyContentTaskListComponent>;
let taskListCloudService: TaskListCloudServiceInterface;
beforeEach(() => {
TestBed.configureTestingModule({
imports: [ProcessServiceCloudTestingModule, CustomTaskListComponent, CustomCopyContentTaskListComponent]
imports: [NoopAuthModule, CustomTaskListComponent, CustomCopyContentTaskListComponent],
providers: [provideCloudPreferences(), { provide: TASK_LIST_CLOUD_TOKEN, useClass: TaskListCloudService }]
});
taskListCloudService = TestBed.inject(TASK_LIST_CLOUD_TOKEN);
const taskListCloudService = TestBed.inject(TASK_LIST_CLOUD_TOKEN);
spyOn(taskListCloudService, 'getTaskByRequest').and.returnValue(of(fakeGlobalTasks));
spyOn(taskListCloudService, 'fetchTaskList').and.returnValue(of(fakeGlobalTasks));
fixtureCustom = TestBed.createComponent(CustomTaskListComponent);
@@ -729,13 +725,13 @@ describe('TaskListCloudComponent: Injecting custom colums for tasklist - CustomT
describe('TaskListCloudComponent: Creating an empty custom template - EmptyTemplateComponent', () => {
let fixtureEmpty: ComponentFixture<EmptyTemplateComponent>;
let taskListCloudService: TaskListCloudServiceInterface;
beforeEach(() => {
TestBed.configureTestingModule({
imports: [ProcessServiceCloudTestingModule, TaskListCloudModule]
imports: [NoopAuthModule, EmptyTemplateComponent],
providers: [provideCloudPreferences(), { provide: TASK_LIST_CLOUD_TOKEN, useClass: TaskListCloudService }]
});
taskListCloudService = TestBed.inject(TASK_LIST_CLOUD_TOKEN);
const taskListCloudService = TestBed.inject(TASK_LIST_CLOUD_TOKEN);
const emptyList = { list: { entries: [] } };
spyOn(taskListCloudService, 'getTaskByRequest').and.returnValue(of(emptyList));
spyOn(taskListCloudService, 'fetchTaskList').and.returnValue(of(fakeGlobalTasks));
@@ -761,16 +757,16 @@ describe('TaskListCloudComponent: Copy cell content directive from app.config sp
let getTaskByRequestSpy: jasmine.Spy;
let fetchTaskListSpy: jasmine.Spy;
let appConfig: AppConfigService;
let taskListCloudService: TaskListCloudServiceInterface;
let component: TaskListCloudComponent;
let fixture: ComponentFixture<TaskListCloudComponent>;
beforeEach(() => {
TestBed.configureTestingModule({
imports: [ProcessServiceCloudTestingModule]
imports: [NoopAuthModule, TaskListCloudComponent],
providers: [provideCloudPreferences(), { provide: TASK_LIST_CLOUD_TOKEN, useClass: TaskListCloudService }]
});
appConfig = TestBed.inject(AppConfigService);
taskListCloudService = TestBed.inject(TASK_LIST_CLOUD_TOKEN);
const taskListCloudService = TestBed.inject(TASK_LIST_CLOUD_TOKEN);
appConfig.config = Object.assign(appConfig.config, {
'adf-cloud-task-list': {
presets: {
@@ -18,9 +18,9 @@
import { TestBed } from '@angular/core/testing';
import { ServiceTaskListCloudService } from './service-task-list-cloud.service';
import { ServiceTaskQueryCloudRequestModel } from '../models/service-task-cloud.model';
import { ProcessServiceCloudTestingModule } from '../../../testing/process-service-cloud.testing.module';
import { of } from 'rxjs';
import { AdfHttpClient } from '@alfresco/adf-core/api';
import { NoopTranslateModule } from '@alfresco/adf-core';
describe('Activiti ServiceTaskList Cloud Service', () => {
let service: ServiceTaskListCloudService;
@@ -33,7 +33,7 @@ describe('Activiti ServiceTaskList Cloud Service', () => {
beforeEach(() => {
TestBed.configureTestingModule({
imports: [ProcessServiceCloudTestingModule]
imports: [NoopTranslateModule]
});
adfHttpClient = TestBed.inject(AdfHttpClient);
service = TestBed.inject(ServiceTaskListCloudService);
@@ -18,9 +18,9 @@
import { TestBed } from '@angular/core/testing';
import { TaskListCloudService } from './task-list-cloud.service';
import { TaskListRequestModel, TaskQueryCloudRequestModel } from '../../../models/filter-cloud-model';
import { ProcessServiceCloudTestingModule } from '../../../testing/process-service-cloud.testing.module';
import { AdfHttpClient } from '@alfresco/adf-core/api';
import { catchError, firstValueFrom, of } from 'rxjs';
import { NoopTranslateModule } from '@alfresco/adf-core';
describe('TaskListCloudService', () => {
let service: TaskListCloudService;
@@ -33,7 +33,7 @@ describe('TaskListCloudService', () => {
beforeEach(() => {
TestBed.configureTestingModule({
imports: [ProcessServiceCloudTestingModule]
imports: [NoopTranslateModule]
});
adfHttpClient = TestBed.inject(AdfHttpClient);
service = TestBed.inject(TaskListCloudService);
@@ -18,25 +18,12 @@
import { NgModule } from '@angular/core';
import { TaskListCloudComponent } from './components/task-list/task-list-cloud.component';
import { ServiceTaskListCloudComponent } from './components/service-task-list/service-task-list-cloud.component';
import { TASK_LIST_CLOUD_TOKEN, TASK_LIST_PREFERENCES_SERVICE_TOKEN } from '../../services/cloud-token.service';
import { TaskListCloudService } from './services/task-list-cloud.service';
import { LocalPreferenceCloudService } from '../../services/local-preference-cloud.service';
export const TASK_LIST_CLOUD_DIRECTIVES = [TaskListCloudComponent, ServiceTaskListCloudComponent] as const;
/** @deprecated use standalone components or TASK_LIST_CLOUD_DIRECTIVES instead */
@NgModule({
imports: [...TASK_LIST_CLOUD_DIRECTIVES],
exports: [...TASK_LIST_CLOUD_DIRECTIVES],
providers: [
{
provide: TASK_LIST_CLOUD_TOKEN,
useClass: TaskListCloudService
},
{
provide: TASK_LIST_PREFERENCES_SERVICE_TOKEN,
useClass: LocalPreferenceCloudService
}
]
exports: [...TASK_LIST_CLOUD_DIRECTIVES]
})
export class TaskListCloudModule {}
@@ -0,0 +1,26 @@
/*!
* @license
* Copyright © 2005-2025 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 { BrowserDynamicTestingModule } from '@angular/platform-browser-dynamic/testing';
import { NoopTranslateModule } from '@alfresco/adf-core';
import { NgModule } from '@angular/core';
import { NoopAnimationsModule } from '@angular/platform-browser/animations';
@NgModule({
imports: [BrowserDynamicTestingModule, NoopTranslateModule, NoopAnimationsModule]
})
export class GlobalTestingModule {}
@@ -1,54 +0,0 @@
/*!
* @license
* Copyright © 2005-2025 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 { NgModule } from '@angular/core';
import { NoopAnimationsModule } from '@angular/platform-browser/animations';
import { HttpClientModule } from '@angular/common/http';
import {
AppConfigService,
AppConfigServiceMock,
TranslationService,
TranslationMock,
CoreModule,
AuthModule,
JWT_STORAGE_SERVICE,
StorageService
} from '@alfresco/adf-core';
import { AlfrescoApiService, AlfrescoApiServiceMock } from '@alfresco/adf-content-services';
import { TranslateModule } from '@ngx-translate/core';
import { ProcessServicesCloudModule } from '../process-services-cloud.module';
import { RouterTestingModule } from '@angular/router/testing';
@NgModule({
imports: [
AuthModule.forRoot({ useHash: true }),
HttpClientModule,
NoopAnimationsModule,
RouterTestingModule,
TranslateModule.forRoot(),
CoreModule.forRoot(),
ProcessServicesCloudModule.forRoot()
],
providers: [
{ provide: AlfrescoApiService, useClass: AlfrescoApiServiceMock },
{ provide: AppConfigService, useClass: AppConfigServiceMock },
{ provide: TranslationService, useClass: TranslationMock },
{ provide: JWT_STORAGE_SERVICE, useClass: StorageService }
],
exports: [NoopAnimationsModule, TranslateModule, CoreModule, ProcessServicesCloudModule]
})
export class ProcessServiceCloudTestingModule {}
@@ -39,3 +39,4 @@ export * from './lib/models/process-instance-variable.model';
export * from './lib/models/variable-definition';
export * from './lib/models/date-format-cloud.model';
export * from './lib/models/process-variable-filter.model';
export * from './lib/providers';
+4 -6
View File
@@ -15,14 +15,12 @@
* limitations under the License.
*/
// This file is required by karma.conf.js and loads recursively all the .spec and framework files
import 'zone.js';
import 'zone.js/testing';
import { getTestBed } from '@angular/core/testing';
import { BrowserDynamicTestingModule, platformBrowserDynamicTesting } from '@angular/platform-browser-dynamic/testing';
import { TestBed } from '@angular/core/testing';
import { platformBrowserDynamicTesting } from '@angular/platform-browser-dynamic/testing';
import { GlobalTestingModule } from './lib/testing/global-testing.module';
// First, initialize the Angular testing environment.
getTestBed().initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), {
TestBed.initTestEnvironment(GlobalTestingModule, platformBrowserDynamicTesting(), {
teardown: { destroyAfterEach: true }
});