mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-07-24 17:32:15 +00:00
[ADF-5158] ECM Version Directive (#5779)
* [ADF-5158] ECM Version Directive * Update version-compatibility.directive.ts * Update version-compatibility.directive.ts * Change name from ecm to acs * Fix unit tests * Update docs for Version directive * Fix unit tests * Fix unit tests * Linting * Update apps-process-cloud.service.spec.ts * Fix Ecm Service initialization * Fix unit test Co-authored-by: Eugenio Romano <eromano@users.noreply.github.com>
This commit is contained in:
56
docs/core/directives/version-compatibility.directive.md
Normal file
56
docs/core/directives/version-compatibility.directive.md
Normal file
@@ -0,0 +1,56 @@
|
||||
# [Version Compatibility Directive](../../../lib/core/directives/version-compatibility.directive.ts "Defined in version-compatibility.directive.ts")
|
||||
|
||||
Enables/disables components based on ACS version in use.
|
||||
|
||||
## Basic usage
|
||||
|
||||
```html
|
||||
<button *adf-acs-version="'6.0.0'">
|
||||
My Action
|
||||
</button>
|
||||
```
|
||||
|
||||
## Class members
|
||||
|
||||
### Properties
|
||||
|
||||
| Name | Type | Default value | Description |
|
||||
| ---- | ---- | ------------- | ----------- |
|
||||
| adf-acs-version | `string` | | The minimum version required for a given component to work propertly. |
|
||||
|
||||
## Details
|
||||
|
||||
Add the directive to a component or HTML element to enable or disable it based on the version of ACS running in the app.
|
||||
|
||||
The directive takes the version specified in the html and compares it to the version of Alfresco Content Services running in the app.
|
||||
|
||||
This will allow certain features to be only present under specific versions.
|
||||
|
||||
#### Major version
|
||||
```html
|
||||
<button *adf-acs-version="'7'">
|
||||
My Action
|
||||
</button>
|
||||
```
|
||||
|
||||
#### Major and minor version
|
||||
```html
|
||||
<button *adf-acs-version="'6.2'">
|
||||
My Action
|
||||
</button>
|
||||
```
|
||||
|
||||
#### Major, minor and patch version
|
||||
```html
|
||||
<button *adf-acs-version="'6.0.1'">
|
||||
My Action
|
||||
</button>
|
||||
```
|
||||
|
||||
It can be set to match major, minor and patches of ACS versions. Fox example, if the version `6` is specifed it will enable the component from `6.0.0` onwards.
|
||||
|
||||
If the minimum version required is not matched the component will not be initialized and will disappear from the DOM tree.
|
||||
|
||||
```
|
||||
Note, if you don’t place the * in front, the app won’t be able to inject the TemplateRef and ViewContainerRef required for this directive to work.
|
||||
```
|
@@ -57,6 +57,8 @@ import { ExtensionsModule } from '@alfresco/adf-extensions';
|
||||
import { directionalityConfigFactory } from './services/directionality-config-factory';
|
||||
import { DirectionalityConfigService } from './services/directionality-config.service';
|
||||
import { SearchTextModule } from './search-text/search-text-input.module';
|
||||
import { versionCompatibilityFactory } from './services/version-compatibility-factory';
|
||||
import { VersionCompatibilityService } from './services/version-compatibility.service';
|
||||
|
||||
@NgModule({
|
||||
imports: [
|
||||
@@ -149,6 +151,12 @@ export class CoreModule {
|
||||
useFactory: directionalityConfigFactory,
|
||||
deps: [ DirectionalityConfigService ],
|
||||
multi: true
|
||||
},
|
||||
{
|
||||
provide: APP_INITIALIZER,
|
||||
useFactory: versionCompatibilityFactory,
|
||||
deps: [ VersionCompatibilityService ],
|
||||
multi: true
|
||||
}
|
||||
]
|
||||
};
|
||||
|
@@ -27,6 +27,7 @@ import { CheckAllowableOperationDirective } from './check-allowable-operation.di
|
||||
import { NodeRestoreDirective } from './node-restore.directive';
|
||||
import { UploadDirective } from './upload.directive';
|
||||
import { NodeDownloadDirective } from './node-download.directive';
|
||||
import { VersionCompatibilityDirective } from './version-compatibility.directive';
|
||||
|
||||
@NgModule({
|
||||
imports: [
|
||||
@@ -41,7 +42,8 @@ import { NodeDownloadDirective } from './node-download.directive';
|
||||
CheckAllowableOperationDirective,
|
||||
NodeRestoreDirective,
|
||||
NodeDownloadDirective,
|
||||
UploadDirective
|
||||
UploadDirective,
|
||||
VersionCompatibilityDirective
|
||||
],
|
||||
exports: [
|
||||
HighlightDirective,
|
||||
@@ -51,7 +53,8 @@ import { NodeDownloadDirective } from './node-download.directive';
|
||||
CheckAllowableOperationDirective,
|
||||
NodeRestoreDirective,
|
||||
NodeDownloadDirective,
|
||||
UploadDirective
|
||||
UploadDirective,
|
||||
VersionCompatibilityDirective
|
||||
]
|
||||
})
|
||||
export class DirectiveModule {}
|
||||
|
@@ -23,5 +23,6 @@ export * from './check-allowable-operation.directive';
|
||||
export * from './node-restore.directive';
|
||||
export * from './node-download.directive';
|
||||
export * from './upload.directive';
|
||||
export * from './version-compatibility.directive';
|
||||
|
||||
export * from './directive.module';
|
||||
|
95
lib/core/directives/version-compatibility.directive.spec.ts
Normal file
95
lib/core/directives/version-compatibility.directive.spec.ts
Normal file
@@ -0,0 +1,95 @@
|
||||
/*!
|
||||
* @license
|
||||
* Copyright 2019 Alfresco Software, Ltd.
|
||||
*
|
||||
* 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 { Component } from '@angular/core';
|
||||
import { By } from '@angular/platform-browser';
|
||||
import { TranslateModule } from '@ngx-translate/core';
|
||||
import { TestBed, ComponentFixture } from '@angular/core/testing';
|
||||
import { setupTestBed } from '../testing/setup-test-bed';
|
||||
import { CoreTestingModule } from '../testing/core.testing.module';
|
||||
import { VersionCompatibilityService } from '@alfresco/adf-core';
|
||||
|
||||
@Component({
|
||||
template: `
|
||||
<div *adf-acs-version="'8'" class="hidden-content-1">
|
||||
My hidden content 1
|
||||
</div>
|
||||
<div *adf-acs-version="'7.1'" class="hidden-content-2">
|
||||
My hidden content 2
|
||||
</div>
|
||||
<div *adf-acs-version="'7.0.2'" class="hidden-content-3">
|
||||
My hidden content 3
|
||||
</div>
|
||||
<div *adf-acs-version="'6.1.5'" class="visible-content-1">
|
||||
My visible content 1
|
||||
</div>
|
||||
<div *adf-acs-version="'6.1'" class="visible-content-2">
|
||||
My visible content 2
|
||||
</div>
|
||||
<div *adf-acs-version="'6'" class="visible-content-3">
|
||||
My visible content 3
|
||||
</div>
|
||||
`
|
||||
})
|
||||
class TestComponent { }
|
||||
|
||||
describe('VersionCompatibilityDirective', () => {
|
||||
let fixture: ComponentFixture<TestComponent>;
|
||||
let versionCompatibilityService: VersionCompatibilityService;
|
||||
|
||||
const acsResponceMock = {
|
||||
display: '7.0.1',
|
||||
major: '7',
|
||||
minor: '0',
|
||||
patch: '1'
|
||||
};
|
||||
|
||||
setupTestBed({
|
||||
imports: [
|
||||
TranslateModule.forRoot(),
|
||||
CoreTestingModule
|
||||
],
|
||||
declarations: [TestComponent
|
||||
]
|
||||
});
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(TestComponent);
|
||||
versionCompatibilityService = TestBed.get(VersionCompatibilityService);
|
||||
spyOn(versionCompatibilityService, 'getAcsVersion').and.returnValue(acsResponceMock);
|
||||
});
|
||||
|
||||
it('should display component when the version is supported', () => {
|
||||
fixture.detectChanges();
|
||||
const element1 = fixture.debugElement.query(By.css('[class="visible-content-1"]'));
|
||||
const element2 = fixture.debugElement.query(By.css('[class="visible-content-2"]'));
|
||||
const element3 = fixture.debugElement.query(By.css('[class="visible-content-3"]'));
|
||||
expect(element1).toBeDefined();
|
||||
expect(element2).toBeDefined();
|
||||
expect(element3).toBeDefined();
|
||||
});
|
||||
|
||||
it('should hide component when the version is not supported', () => {
|
||||
fixture.detectChanges();
|
||||
const element1 = fixture.debugElement.query(By.css('[class="hidden-content-1"]'));
|
||||
const element2 = fixture.debugElement.query(By.css('[class="hidden-content-2"]'));
|
||||
const element3 = fixture.debugElement.query(By.css('[class="hidden-content-3"]'));
|
||||
expect(element1).toBeNull();
|
||||
expect(element2).toBeNull();
|
||||
expect(element3).toBeNull();
|
||||
});
|
||||
});
|
82
lib/core/directives/version-compatibility.directive.ts
Normal file
82
lib/core/directives/version-compatibility.directive.ts
Normal file
@@ -0,0 +1,82 @@
|
||||
/*!
|
||||
* @license
|
||||
* Copyright 2019 Alfresco Software, Ltd.
|
||||
*
|
||||
* 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 { Directive, Input, ViewContainerRef, TemplateRef } from '@angular/core';
|
||||
import { VersionCompatibilityService } from '../services/version-compatibility.service';
|
||||
import { VersionModel } from '../models/product-version.model';
|
||||
|
||||
@Directive({
|
||||
selector: '[adf-acs-version]'
|
||||
})
|
||||
export class VersionCompatibilityDirective {
|
||||
|
||||
/** Minimum version required for component to work correctly . */
|
||||
@Input('adf-acs-version')
|
||||
set version(requiredVersion: string) {
|
||||
this.validateAcsVersion(requiredVersion);
|
||||
}
|
||||
|
||||
constructor(
|
||||
private templateRef: TemplateRef<any>,
|
||||
private viewContainer: ViewContainerRef,
|
||||
private versionCompatibilityService: VersionCompatibilityService
|
||||
) {
|
||||
}
|
||||
|
||||
private validateAcsVersion(requiredVersion: string) {
|
||||
if (requiredVersion && this.isVersionSupported(requiredVersion)) {
|
||||
this.viewContainer.createEmbeddedView(this.templateRef);
|
||||
} else {
|
||||
this.viewContainer.clear();
|
||||
}
|
||||
}
|
||||
|
||||
private parseVersion(version: string): VersionModel {
|
||||
const major = version.split('.')[0];
|
||||
const minor = version.split('.')[1] || '0';
|
||||
const patch = version.split('.')[2] || '0';
|
||||
|
||||
return {
|
||||
major: major,
|
||||
minor: minor,
|
||||
patch: patch
|
||||
} as VersionModel;
|
||||
}
|
||||
|
||||
private isVersionSupported(requiredVersion: string): boolean {
|
||||
const parsedRequiredVersion = this.parseVersion(requiredVersion);
|
||||
const currentVersion = this.versionCompatibilityService.getAcsVersion();
|
||||
|
||||
let versionSupported = false;
|
||||
|
||||
if (currentVersion) {
|
||||
if (+currentVersion.major > +parsedRequiredVersion.major) {
|
||||
versionSupported = true;
|
||||
} else if (currentVersion.major === parsedRequiredVersion.major &&
|
||||
+currentVersion.minor > +parsedRequiredVersion.minor) {
|
||||
versionSupported = true;
|
||||
} else if (currentVersion.major === parsedRequiredVersion.major &&
|
||||
currentVersion.minor === parsedRequiredVersion.minor &&
|
||||
+currentVersion.patch >= +parsedRequiredVersion.patch) {
|
||||
versionSupported = true;
|
||||
}
|
||||
}
|
||||
|
||||
return versionSupported;
|
||||
}
|
||||
|
||||
}
|
@@ -24,7 +24,6 @@ import { Subject } from 'rxjs';
|
||||
import { TranslateModule } from '@ngx-translate/core';
|
||||
import { UserPreferencesService } from '../services/user-preferences.service';
|
||||
import { setupTestBed } from '../testing/setup-test-bed';
|
||||
import { CoreModule } from '../core.module';
|
||||
|
||||
describe('SearchTextInputComponent', () => {
|
||||
|
||||
@@ -37,7 +36,6 @@ describe('SearchTextInputComponent', () => {
|
||||
setupTestBed({
|
||||
imports: [
|
||||
TranslateModule.forRoot(),
|
||||
CoreModule.forRoot(),
|
||||
CoreTestingModule
|
||||
]
|
||||
});
|
||||
@@ -58,6 +56,7 @@ describe('SearchTextInputComponent', () => {
|
||||
describe('component rendering', () => {
|
||||
|
||||
it('should display a search input field when specified', async(() => {
|
||||
fixture.detectChanges();
|
||||
component.inputType = 'search';
|
||||
fixture.detectChanges();
|
||||
expect(element.querySelectorAll('input[type="search"]').length).toBe(1);
|
||||
@@ -68,15 +67,17 @@ describe('SearchTextInputComponent', () => {
|
||||
|
||||
beforeEach(() => {
|
||||
component.expandable = false;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('search button should be hide', () => {
|
||||
fixture.detectChanges();
|
||||
const searchButton: any = element.querySelector('#adf-search-button');
|
||||
expect(searchButton).toBe(null);
|
||||
});
|
||||
|
||||
it('should not have animation', () => {
|
||||
userPreferencesService.setWithoutStore('textOrientation', 'rtl');
|
||||
fixture.detectChanges();
|
||||
expect(component.subscriptAnimationState.value).toBe('no-animation');
|
||||
});
|
||||
});
|
||||
|
@@ -61,4 +61,5 @@ export * from './ecm-user.service';
|
||||
export * from './identity-user.service';
|
||||
export * from './identity-group.service';
|
||||
export * from './identity-role.service';
|
||||
export * from './version-compatibility.service';
|
||||
export * from './auth-bearer.interceptor';
|
||||
|
22
lib/core/services/version-compatibility-factory.ts
Normal file
22
lib/core/services/version-compatibility-factory.ts
Normal file
@@ -0,0 +1,22 @@
|
||||
/*!
|
||||
* @license
|
||||
* Copyright 2019 Alfresco Software, Ltd.
|
||||
*
|
||||
* 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 { VersionCompatibilityService } from './version-compatibility.service';
|
||||
|
||||
export function versionCompatibilityFactory(
|
||||
versionCompatibilityService: VersionCompatibilityService
|
||||
): Function { return () => versionCompatibilityService; }
|
75
lib/core/services/version-compatibility.service.spec.ts
Normal file
75
lib/core/services/version-compatibility.service.spec.ts
Normal file
@@ -0,0 +1,75 @@
|
||||
/*!
|
||||
* @license
|
||||
* Copyright 2019 Alfresco Software, Ltd.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { TestBed } from '@angular/core/testing';
|
||||
import { AppConfigService } from '../app-config/app-config.service';
|
||||
import { DiscoveryApiService } from './discovery-api.service';
|
||||
import { setupTestBed } from '../testing/setup-test-bed';
|
||||
import { CoreTestingModule } from '../testing/core.testing.module';
|
||||
import { AlfrescoApiServiceMock } from '../mock/alfresco-api.service.mock';
|
||||
import { VersionCompatibilityService } from './version-compatibility.service';
|
||||
import { of } from 'rxjs';
|
||||
import { TranslateModule } from '@ngx-translate/core';
|
||||
import { AuthenticationService } from './authentication.service';
|
||||
|
||||
describe('VersionCompatibilityService', () => {
|
||||
let versionCompatibilityService: VersionCompatibilityService;
|
||||
let alfrescoApiService: AlfrescoApiServiceMock;
|
||||
let discoveryApiService: DiscoveryApiService;
|
||||
let authenticationService: AuthenticationService;
|
||||
|
||||
const acsResponceMock = {
|
||||
version: {
|
||||
display: '7.0.1',
|
||||
major: '7',
|
||||
minor: '0',
|
||||
patch: '1'
|
||||
}
|
||||
};
|
||||
|
||||
setupTestBed({
|
||||
imports: [
|
||||
TranslateModule.forRoot(),
|
||||
CoreTestingModule
|
||||
]
|
||||
});
|
||||
|
||||
beforeEach(() => {
|
||||
discoveryApiService = TestBed.get(DiscoveryApiService);
|
||||
authenticationService = TestBed.get(AuthenticationService);
|
||||
spyOn(discoveryApiService, 'getEcmProductInfo').and.returnValue(of(acsResponceMock));
|
||||
spyOn(authenticationService, 'isEcmLoggedIn').and.returnValue(true);
|
||||
versionCompatibilityService = TestBed.get(VersionCompatibilityService);
|
||||
alfrescoApiService = new AlfrescoApiServiceMock(new AppConfigService(null), null);
|
||||
|
||||
});
|
||||
|
||||
it('should get ACS running version', (done) => {
|
||||
versionCompatibilityService = new VersionCompatibilityService(
|
||||
alfrescoApiService,
|
||||
authenticationService,
|
||||
discoveryApiService
|
||||
);
|
||||
alfrescoApiService.initialize();
|
||||
setTimeout(() => {
|
||||
const acsVersion = versionCompatibilityService.getAcsVersion();
|
||||
expect(acsVersion).toBeDefined();
|
||||
expect(acsVersion.display).toBe('7.0.1');
|
||||
done();
|
||||
}, 100);
|
||||
});
|
||||
});
|
53
lib/core/services/version-compatibility.service.ts
Normal file
53
lib/core/services/version-compatibility.service.ts
Normal file
@@ -0,0 +1,53 @@
|
||||
/*!
|
||||
* @license
|
||||
* Copyright 2019 Alfresco Software, Ltd.
|
||||
*
|
||||
* 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 { Injectable } from '@angular/core';
|
||||
import { AlfrescoApiService } from './alfresco-api.service';
|
||||
import { filter } from 'rxjs/operators';
|
||||
import { DiscoveryApiService } from './discovery-api.service';
|
||||
import { VersionModel, EcmProductVersionModel } from '../models/product-version.model';
|
||||
import { AuthenticationService } from './authentication.service';
|
||||
|
||||
@Injectable({
|
||||
providedIn: 'root'
|
||||
})
|
||||
export class VersionCompatibilityService {
|
||||
private acsVersion: VersionModel;
|
||||
|
||||
constructor(
|
||||
private alfrescoApiService: AlfrescoApiService,
|
||||
private authService: AuthenticationService,
|
||||
private discoveryApiService: DiscoveryApiService
|
||||
) {
|
||||
this.alfrescoApiService.alfrescoApiInitialized
|
||||
.pipe(filter(status => status))
|
||||
.subscribe(this.initCompatibilityVersion.bind(this));
|
||||
}
|
||||
|
||||
private initCompatibilityVersion() {
|
||||
if (this.authService.isEcmLoggedIn()) {
|
||||
this.discoveryApiService.getEcmProductInfo().toPromise().then(
|
||||
(acsInfo: EcmProductVersionModel) => {
|
||||
this.acsVersion = acsInfo.version;
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
public getAcsVersion(): VersionModel {
|
||||
return this.acsVersion;
|
||||
}
|
||||
}
|
@@ -32,6 +32,8 @@ import { CookieServiceMock } from '../mock/cookie.service.mock';
|
||||
import { HttpClientModule } from '@angular/common/http';
|
||||
import { directionalityConfigFactory } from '../services/directionality-config-factory';
|
||||
import { DirectionalityConfigService } from '../services/directionality-config.service';
|
||||
import { versionCompatibilityFactory } from '../services/version-compatibility-factory';
|
||||
import { VersionCompatibilityService } from '../services/version-compatibility.service';
|
||||
|
||||
@NgModule({
|
||||
imports: [
|
||||
@@ -52,6 +54,12 @@ import { DirectionalityConfigService } from '../services/directionality-config.s
|
||||
useFactory: directionalityConfigFactory,
|
||||
deps: [ DirectionalityConfigService ],
|
||||
multi: true
|
||||
},
|
||||
{
|
||||
provide: APP_INITIALIZER,
|
||||
useFactory: versionCompatibilityFactory,
|
||||
deps: [ VersionCompatibilityService ],
|
||||
multi: true
|
||||
}
|
||||
],
|
||||
exports: [
|
||||
|
@@ -17,7 +17,7 @@
|
||||
|
||||
import { TestBed } from '@angular/core/testing';
|
||||
import { throwError } from 'rxjs';
|
||||
import { setupTestBed, CoreModule, AppConfigService, AlfrescoApiService } from '@alfresco/adf-core';
|
||||
import { setupTestBed, AppConfigService, AlfrescoApiService, CoreTestingModule } from '@alfresco/adf-core';
|
||||
import { HttpErrorResponse } from '@angular/common/http';
|
||||
import { AppsProcessCloudService } from './apps-process-cloud.service';
|
||||
import { fakeApplicationInstance } from '../mock/app-model.mock';
|
||||
@@ -40,7 +40,7 @@ describe('AppsProcessCloudService', () => {
|
||||
setupTestBed({
|
||||
imports: [
|
||||
TranslateModule.forRoot(),
|
||||
CoreModule.forRoot(),
|
||||
CoreTestingModule,
|
||||
ProcessServiceCloudTestingModule
|
||||
]
|
||||
});
|
||||
|
@@ -29,7 +29,8 @@ import {
|
||||
FormOutcomeModel,
|
||||
setupTestBed,
|
||||
TRANSLATION_PROVIDER,
|
||||
WidgetVisibilityService
|
||||
WidgetVisibilityService,
|
||||
VersionCompatibilityService
|
||||
} from '@alfresco/adf-core';
|
||||
import { ProcessServiceCloudTestingModule } from '../../testing/process-service-cloud.testing.module';
|
||||
import { FormCloudService } from '../services/form-cloud.service';
|
||||
@@ -97,6 +98,10 @@ describe('FormCloudComponent', () => {
|
||||
name: 'app',
|
||||
source: 'resources'
|
||||
}
|
||||
},
|
||||
{
|
||||
provide: VersionCompatibilityService,
|
||||
useValue: {}
|
||||
}
|
||||
]
|
||||
});
|
||||
|
@@ -27,7 +27,7 @@ import {
|
||||
IdentityGroupService,
|
||||
mockIdentityGroups,
|
||||
AlfrescoApiService,
|
||||
CoreModule
|
||||
CoreTestingModule
|
||||
} from '@alfresco/adf-core';
|
||||
import { SimpleChange } from '@angular/core';
|
||||
import { TranslateModule } from '@ngx-translate/core';
|
||||
@@ -53,7 +53,7 @@ describe('GroupCloudComponent', () => {
|
||||
setupTestBed({
|
||||
imports: [
|
||||
TranslateModule.forRoot(),
|
||||
CoreModule.forRoot(),
|
||||
CoreTestingModule,
|
||||
ProcessServiceCloudTestingModule,
|
||||
GroupCloudModule
|
||||
]
|
||||
|
@@ -20,9 +20,9 @@ import { ComponentFixture, TestBed, async } from '@angular/core/testing';
|
||||
import {
|
||||
IdentityUserService,
|
||||
AlfrescoApiService,
|
||||
CoreModule,
|
||||
setupTestBed,
|
||||
IdentityUserModel
|
||||
IdentityUserModel,
|
||||
CoreTestingModule
|
||||
} from '@alfresco/adf-core';
|
||||
import { ProcessServiceCloudTestingModule } from '../../testing/process-service-cloud.testing.module';
|
||||
import { of } from 'rxjs';
|
||||
@@ -58,7 +58,7 @@ describe('PeopleCloudComponent', () => {
|
||||
setupTestBed({
|
||||
imports: [
|
||||
TranslateModule.forRoot(),
|
||||
CoreModule.forRoot(),
|
||||
CoreTestingModule,
|
||||
ProcessServiceCloudTestingModule,
|
||||
PeopleCloudModule
|
||||
]
|
||||
|
@@ -21,7 +21,7 @@ import { ContentModule, ContentNodeSelectorPanelComponent } from '@alfresco/adf-
|
||||
import { EventEmitter } from '@angular/core';
|
||||
import { ProcessTestingModule } from '../testing/process.testing.module';
|
||||
import { AttachFileWidgetDialogComponent } from './attach-file-widget-dialog.component';
|
||||
import { setupTestBed, AuthenticationService, SitesService, CoreModule } from '@alfresco/adf-core';
|
||||
import { setupTestBed, AuthenticationService, SitesService } from '@alfresco/adf-core';
|
||||
import { AttachFileWidgetDialogComponentData } from './attach-file-widget-dialog-component.interface';
|
||||
import { of } from 'rxjs';
|
||||
import { By } from '@angular/platform-browser';
|
||||
@@ -47,7 +47,6 @@ describe('AttachFileWidgetDialogComponent', () => {
|
||||
setupTestBed({
|
||||
imports: [
|
||||
TranslateModule.forRoot(),
|
||||
CoreModule.forRoot(),
|
||||
ProcessTestingModule,
|
||||
ContentModule.forRoot()
|
||||
],
|
||||
@@ -73,6 +72,7 @@ describe('AttachFileWidgetDialogComponent', () => {
|
||||
});
|
||||
|
||||
it('should be able to create the widget', () => {
|
||||
fixture.detectChanges();
|
||||
expect(widget).not.toBeNull();
|
||||
});
|
||||
|
||||
|
Reference in New Issue
Block a user