Improved ESLint configuration, integrated spellcheck and error fixes (#8931)

* integrate cspell with eslint, improved configuration

* core: fix linting errors

* core: fix lint warnings

* content: lint fixes

* process service lint fixes

* lint: process services cloud

* lint: insights

* lint: extensions

* [ci:force] lint: cli fixes

* [ci:force] comment out dead code

* [ci:force] exclude dead code

* fix code and tests

* rollback some changes

* fix testing lib

* fix demo shell

* minor lint warning fixes

* minor lint fixes

* fix process services
This commit is contained in:
Denys Vuika
2023-09-26 13:46:53 +01:00
committed by GitHub
parent 8370a3de66
commit ef551a9c71
134 changed files with 2436 additions and 2269 deletions

View File

@@ -129,9 +129,9 @@ describe('AspectListComponent', () => {
});
it('should show the loading spinner when result is loading', () => {
const delayReusult = of(null).pipe(delay(0));
spyOn(nodeService, 'getNode').and.returnValue(delayReusult);
spyOn(aspectListService, 'getAspects').and.returnValue(delayReusult);
const delayResult = of(null).pipe(delay(0));
spyOn(nodeService, 'getNode').and.returnValue(delayResult);
spyOn(aspectListService, 'getAspects').and.returnValue(delayResult);
fixture.detectChanges();
const spinner = fixture.nativeElement.querySelector('#adf-aspect-spinner');
expect(spinner).toBeDefined();

View File

@@ -140,9 +140,9 @@ describe('CategoriesManagementComponent', () => {
});
it('should unassign/remove specific category after clicking at remove icon and emit categories change', () => {
const removeBtns = getRemoveCategoryButtons();
const removeButtons = getRemoveCategoryButtons();
const categoriesChangeSpy = spyOn(component.categoriesChange, 'emit');
removeBtns[0].click();
removeButtons[0].click();
fixture.detectChanges();
@@ -156,9 +156,9 @@ describe('CategoriesManagementComponent', () => {
it('should disable unassigning/removing categories when disableRemoval is set', () => {
component.disableRemoval = true;
fixture.detectChanges();
const removeBtns = getRemoveCategoryButtons();
const allBtnsDisabled = removeBtns.every((removeBtn) => removeBtn.disabled);
expect(allBtnsDisabled).toBeTrue();
const removeButtons = getRemoveCategoryButtons();
const allButtonsDisabled = removeButtons.every((removeBtn) => removeBtn.disabled);
expect(allButtonsDisabled).toBeTrue();
});
});
@@ -269,8 +269,8 @@ describe('CategoriesManagementComponent', () => {
});
it('should have correct remove category title', () => {
const removeBtns = getRemoveCategoryButtons();
const isTitleCorrect = removeBtns.every((removeBtn) => removeBtn.attributes.getNamedItem('title').textContent === 'CATEGORIES_MANAGEMENT.UNASSIGN_CATEGORY');
const removeButtons = getRemoveCategoryButtons();
const isTitleCorrect = removeButtons.every((removeBtn) => removeBtn.attributes.getNamedItem('title').textContent === 'CATEGORIES_MANAGEMENT.UNASSIGN_CATEGORY');
expect(isTitleCorrect).toBeTrue();
});
@@ -329,8 +329,8 @@ describe('CategoriesManagementComponent', () => {
fixture.detectChanges();
const categoriesChangeSpy = spyOn(component.categoriesChange, 'emit').and.callThrough();
const removeCategoryBtns = getRemoveCategoryButtons();
removeCategoryBtns[2].click();
const removeCategoryButtons = getRemoveCategoryButtons();
removeCategoryButtons[2].click();
fixture.detectChanges();
expect(component.categories.length).toBe(2);
@@ -345,8 +345,8 @@ describe('CategoriesManagementComponent', () => {
typeCategory('test');
expect(component.existingCategories.length).toBe(2);
const categoriesChangeSpy = spyOn(component.categoriesChange, 'emit').and.callThrough();
const removeCategoryBtns = getRemoveCategoryButtons();
removeCategoryBtns[0].click();
const removeCategoryButtons = getRemoveCategoryButtons();
removeCategoryButtons[0].click();
fixture.detectChanges();
expect(component.categories.length).toBe(1);
@@ -375,8 +375,8 @@ describe('CategoriesManagementComponent', () => {
});
it('should have correct remove category title', () => {
const removeBtns = getRemoveCategoryButtons();
const isTitleCorrect = removeBtns.every((removeBtn) => removeBtn.attributes.getNamedItem('title').textContent === 'CATEGORIES_MANAGEMENT.DELETE_CATEGORY');
const removeButtons = getRemoveCategoryButtons();
const isTitleCorrect = removeButtons.every((removeBtn) => removeBtn.attributes.getNamedItem('title').textContent === 'CATEGORIES_MANAGEMENT.DELETE_CATEGORY');
expect(isTitleCorrect).toBeTrue();
});
@@ -434,8 +434,8 @@ describe('CategoriesManagementComponent', () => {
createCategory('test');
const categoriesChangeSpy = spyOn(component.categoriesChange, 'emit');
const removeCategoryBtns = getRemoveCategoryButtons();
removeCategoryBtns[2].click();
const removeCategoryButtons = getRemoveCategoryButtons();
removeCategoryButtons[2].click();
fixture.detectChanges();
expect(component.categories.length).toBe(2);

View File

@@ -64,17 +64,15 @@ export class CategoryTreeDatasourceService extends TreeService<CategoryNode> {
.join(pathSeparator);
return this.categoryService.getCategory(category.entry.id).pipe(
map((res) => {
return {
id: category.entry.id,
nodeName: path ? `${path}/${category.entry.name}` : category.entry.name,
parentId: category.entry.parentId,
level: 0,
nodeType: TreeNodeType.RegularNode,
hasChildren: res.entry.hasChildren,
isLoading: false
};
})
map((res) => ({
id: category.entry.id,
nodeName: path ? `${path}/${category.entry.name}` : category.entry.name,
parentId: category.entry.parentId,
level: 0,
nodeType: TreeNodeType.RegularNode,
hasChildren: res.entry.hasChildren,
isLoading: false
}))
);
}),
toArray(),

View File

@@ -610,7 +610,7 @@ describe('ContentMetadataComponent', () => {
let classesApi: ClassesApi;
let expectedNode: Node;
const versionableResponse: PropertyGroup = {
const verResponse: PropertyGroup = {
name: 'cm:versionable',
title: 'Versionable',
properties: {
@@ -705,7 +705,7 @@ describe('ContentMetadataComponent', () => {
'cm:versionable': '*'
});
spyOn(classesApi, 'getClass').and.returnValue(Promise.resolve(versionableResponse));
spyOn(classesApi, 'getClass').and.returnValue(Promise.resolve(verResponse));
component.ngOnChanges({ node: new SimpleChange(node, expectedNode, false) });
fixture.detectChanges();
@@ -713,9 +713,9 @@ describe('ContentMetadataComponent', () => {
await component.groupedProperties$.toPromise();
fixture.detectChanges();
const versionableProp = queryDom(fixture, 'Versionable');
const verProp = queryDom(fixture, 'Versionable');
expect(versionableProp).toBeTruthy();
expect(verProp).toBeTruthy();
expect(classesApi.getClass).toHaveBeenCalledWith('cm_versionable');
});
@@ -725,7 +725,7 @@ describe('ContentMetadataComponent', () => {
'cm:versionable': '*'
});
spyOn(classesApi, 'getClass').and.returnValue(Promise.resolve(versionableResponse));
spyOn(classesApi, 'getClass').and.returnValue(Promise.resolve(verResponse));
component.ngOnChanges({ node: new SimpleChange(node, expectedNode, false) });
fixture.detectChanges();
@@ -733,9 +733,9 @@ describe('ContentMetadataComponent', () => {
await component.groupedProperties$.toPromise();
fixture.detectChanges();
const versionableProps = fixture.debugElement.queryAll(By.css('[data-automation-id="adf-metadata-group-Versionable"]'));
const verProps = fixture.debugElement.queryAll(By.css('[data-automation-id="adf-metadata-group-Versionable"]'));
expect(versionableProps.length).toEqual(2);
expect(verProps.length).toEqual(2);
expect(classesApi.getClass).toHaveBeenCalledWith('cm_versionable');
});
@@ -745,7 +745,7 @@ describe('ContentMetadataComponent', () => {
exclude: 'cm:versionable'
});
spyOn(classesApi, 'getClass').and.returnValue(Promise.resolve(versionableResponse));
spyOn(classesApi, 'getClass').and.returnValue(Promise.resolve(verResponse));
component.ngOnChanges({ node: new SimpleChange(node, expectedNode, false) });
fixture.detectChanges();
@@ -753,9 +753,9 @@ describe('ContentMetadataComponent', () => {
await component.groupedProperties$.toPromise();
fixture.detectChanges();
const versionableProp = queryDom(fixture, 'Versionable');
const verProp = queryDom(fixture, 'Versionable');
expect(versionableProp).toBeNull();
expect(verProp).toBeNull();
expect(classesApi.getClass).toHaveBeenCalledWith('cm_versionable');
});
@@ -766,7 +766,7 @@ describe('ContentMetadataComponent', () => {
'cm:versionable': '*'
});
spyOn(classesApi, 'getClass').and.returnValue(Promise.resolve(versionableResponse));
spyOn(classesApi, 'getClass').and.returnValue(Promise.resolve(verResponse));
component.ngOnChanges({ node: new SimpleChange(node, expectedNode, false) });
fixture.detectChanges();
@@ -774,9 +774,9 @@ describe('ContentMetadataComponent', () => {
await component.groupedProperties$.toPromise();
fixture.detectChanges();
const versionableProp = queryDom(fixture, 'Versionable');
const verProp = queryDom(fixture, 'Versionable');
expect(versionableProp).toBeTruthy();
expect(verProp).toBeTruthy();
expect(classesApi.getClass).toHaveBeenCalledWith('cm_versionable');
});
@@ -786,7 +786,7 @@ describe('ContentMetadataComponent', () => {
exclude: ['cm:versionable', 'cm:auditable']
});
spyOn(classesApi, 'getClass').and.returnValue(Promise.resolve(versionableResponse));
spyOn(classesApi, 'getClass').and.returnValue(Promise.resolve(verResponse));
component.ngOnChanges({ node: new SimpleChange(node, expectedNode, false) });
fixture.detectChanges();
@@ -794,8 +794,8 @@ describe('ContentMetadataComponent', () => {
await component.groupedProperties$.toPromise();
fixture.detectChanges();
const versionableProp = queryDom(fixture, 'Versionable');
expect(versionableProp).toBeNull();
const verProp = queryDom(fixture, 'Versionable');
expect(verProp).toBeNull();
const auditableProp = queryDom(fixture, 'Auditable');
expect(auditableProp).toBeNull();
@@ -825,17 +825,17 @@ describe('ContentMetadataComponent', () => {
exifProp.nativeElement.click();
const pixelXDimentionElement = fixture.debugElement.query(
const pixelXDimensionElement = fixture.debugElement.query(
By.css('[data-automation-id="card-textitem-label-properties.exif:pixelXDimension"]')
);
expect(pixelXDimentionElement).toBeTruthy();
expect(pixelXDimentionElement.nativeElement.textContent.trim()).toEqual('Image Width');
expect(pixelXDimensionElement).toBeTruthy();
expect(pixelXDimensionElement.nativeElement.textContent.trim()).toEqual('Image Width');
const pixelYDimentionElement = fixture.debugElement.query(
const pixelYDimensionElement = fixture.debugElement.query(
By.css('[data-automation-id="card-textitem-label-properties.exif:pixelYDimension"]')
);
expect(pixelYDimentionElement).toBeTruthy();
expect(pixelYDimentionElement.nativeElement.textContent.trim()).toEqual('Image Height');
expect(pixelYDimensionElement).toBeTruthy();
expect(pixelYDimensionElement.nativeElement.textContent.trim()).toEqual('Image Height');
});
it('should show Exif twice when includeAll is set to true', async () => {

View File

@@ -330,7 +330,7 @@ export class ContentMetadataComponent implements OnChanges, OnInit, OnDestroy {
this.loadTagsForNode(this.node.id);
}
if (this.displayCategories && !!result.LinkingCategories) {
this.assignedCategories = !!result.LinkingCategories.list ?
this.assignedCategories = result.LinkingCategories.list ?
result.LinkingCategories.list.entries.map((entry: CategoryEntry) => entry.entry) :
[result.LinkingCategories.entry];
}

View File

@@ -110,7 +110,7 @@ describe('ContentMetaDataService', () => {
}
};
const versionableResponse: PropertyGroup = {
const verResponse: PropertyGroup = {
name: 'cm:versionable',
title: 'Versionable',
properties: {
@@ -232,7 +232,7 @@ describe('ContentMetaDataService', () => {
'cm:versionable': '*'
});
spyOn(classesApi, 'getClass').and.returnValue(Promise.resolve(versionableResponse));
spyOn(classesApi, 'getClass').and.returnValue(Promise.resolve(verResponse));
const groupedProperties = await service.getGroupedProperties(fakeContentNode).toPromise();
@@ -249,7 +249,7 @@ describe('ContentMetaDataService', () => {
'cm:versionable': '*'
});
spyOn(classesApi, 'getClass').and.returnValue(Promise.resolve(versionableResponse));
spyOn(classesApi, 'getClass').and.returnValue(Promise.resolve(verResponse));
const groupedProperties = await service.getGroupedProperties(fakeContentNode).toPromise();
@@ -267,7 +267,7 @@ describe('ContentMetaDataService', () => {
exclude: 'cm:versionable'
});
spyOn(classesApi, 'getClass').and.returnValue(Promise.resolve(versionableResponse));
spyOn(classesApi, 'getClass').and.returnValue(Promise.resolve(verResponse));
const groupedProperties = await service.getGroupedProperties(fakeContentNode).toPromise();
expect(groupedProperties.length).toEqual(0);
@@ -283,7 +283,7 @@ describe('ContentMetaDataService', () => {
'cm:versionable': '*'
});
spyOn(classesApi, 'getClass').and.returnValue(Promise.resolve(versionableResponse));
spyOn(classesApi, 'getClass').and.returnValue(Promise.resolve(verResponse));
const groupedProperties = await service.getGroupedProperties(fakeContentNode).toPromise();
expect(groupedProperties.length).toEqual(1);
@@ -299,7 +299,7 @@ describe('ContentMetaDataService', () => {
exclude: ['cm:versionable', 'cm:auditable']
});
spyOn(classesApi, 'getClass').and.returnValue(Promise.resolve(versionableResponse));
spyOn(classesApi, 'getClass').and.returnValue(Promise.resolve(verResponse));
const groupedProperties = await service.getGroupedProperties(fakeContentNode).toPromise();
expect(groupedProperties.length).toEqual(0);

View File

@@ -147,9 +147,9 @@ describe('Content Type Dialog Component', () => {
});
it('should show the property with the aspect prefix not the inherited ones', async () => {
const showPropertyAccordon: HTMLButtonElement = fixture.nativeElement.querySelector('.adf-content-type-accordion .mat-expansion-panel-header');
expect(showPropertyAccordon).toBeDefined();
showPropertyAccordon.click();
const showPropertyAccordion: HTMLButtonElement = fixture.nativeElement.querySelector('.adf-content-type-accordion .mat-expansion-panel-header');
expect(showPropertyAccordion).toBeDefined();
showPropertyAccordion.click();
fixture.detectChanges();
await fixture.whenStable();
const propertyShowed: NodeList = fixture.nativeElement.querySelectorAll('.adf-content-type-table .mat-row');

View File

@@ -20,6 +20,7 @@ import { UntypedFormControl } from '@angular/forms';
const I18N_ERRORS_PATH = 'CORE.FOLDER_DIALOG.FOLDER_NAME.ERRORS';
export const forbidSpecialCharacters = ({ value }: UntypedFormControl) => {
// eslint-disable-next-line no-useless-escape
const specialCharacters: RegExp = /([\*\"\<\>\\\/\?\:\|])/;
const isValid: boolean = !specialCharacters.test(value);

View File

@@ -59,7 +59,7 @@ export class NodeLockDialogComponent implements OnInit {
isLocked: node.isLocked || false,
allowOwner: node.properties['cm:lockType'] === 'WRITE_LOCK',
isTimeLock: !!node.properties['cm:expiryDate'],
time: !!node.properties['cm:expiryDate'] ? moment(node.properties['cm:expiryDate']) : moment()
time: node.properties['cm:expiryDate'] ? moment(node.properties['cm:expiryDate']) : moment()
});
}

View File

@@ -24,10 +24,10 @@ import { TranslateModule } from '@ngx-translate/core';
@Component({
template: `<div tabindex="0" adf-auto-focus> Test</div>`
})
class AutoFoucsTestComponent {}
class AutoFocusTestComponent {}
describe('AutoFocusDirective', () => {
let fixture: ComponentFixture<AutoFoucsTestComponent>;
let fixture: ComponentFixture<AutoFocusTestComponent>;
beforeEach(() => {
TestBed.configureTestingModule({
@@ -36,10 +36,10 @@ describe('AutoFocusDirective', () => {
],
declarations: [
AutoFocusDirective,
AutoFoucsTestComponent
AutoFocusTestComponent
]
});
fixture = TestBed.createComponent(AutoFoucsTestComponent);
fixture = TestBed.createComponent(AutoFocusTestComponent);
});
it('should focus the element after content is initialized', fakeAsync(() => {

View File

@@ -118,7 +118,7 @@ export class NodeDeleteDirective implements OnChanges {
let promise: Promise<any>;
if (node.entry.hasOwnProperty('archivedAt') && node.entry['archivedAt']) {
if (Object.prototype.hasOwnProperty.call(node.entry, 'archivedAt') && node.entry['archivedAt']) {
promise = this.trashcanApi.deleteDeletedNode(id);
} else {
promise = this.nodesApi.deleteNode(id, { permanent: this.permanent });

View File

@@ -130,7 +130,7 @@ export class NodeFavoriteDirective implements OnChanges {
const node: Node | SharedLink = selected.entry;
// ACS 6.x with 'isFavorite' include
if (node?.hasOwnProperty('isFavorite')) {
if (node && Object.prototype.hasOwnProperty.call(node, 'isFavorite')) {
return of(selected);
}

View File

@@ -39,11 +39,11 @@ export class ContentActionModel {
this.permission = obj.permission;
this.disableWithNoPermission = obj.disableWithNoPermission;
if (obj.hasOwnProperty('disabled')) {
if (Object.prototype.hasOwnProperty.call(obj, 'disabled')) {
this.disabled = obj.disabled;
}
if (obj.hasOwnProperty('visible')) {
if (Object.prototype.hasOwnProperty.call(obj, 'visible')) {
this.visible = obj.visible;
}
}

View File

@@ -56,7 +56,7 @@ export class AddPermissionDialogComponent {
this.selectedMembers.forEach((member) => {
const existingMember = this.existingMembers.find(({authorityId}) => authorityId === member.id);
if (!!existingMember) {
if (existingMember) {
member.role = existingMember.name;
member.accessStatus = existingMember.accessStatus;
member.readonly = true; // make role non editable
@@ -66,7 +66,7 @@ export class AddPermissionDialogComponent {
}
canCloseDialog() {
if (!!this.selectedMembers.length) {
if (this.selectedMembers.length) {
this.disableSearch();
} else {
this.dialogRef.close();

View File

@@ -54,7 +54,7 @@ export class SearchPermissionConfigurationService implements SearchConfiguration
if (this.queryProvider?.query) {
query = this.queryProvider.query.replace(new RegExp(/\${([^}]+)}/g), searchTerm);
} else {
query = `(email:*${searchTerm}* OR firstName:*${searchTerm}* OR lastName:*${searchTerm}* OR displayName:*${searchTerm}* OR authorityName:*${searchTerm}* OR authorityDisplayName:*${searchTerm}*) AND ANAME:(\"0/APP.DEFAULT\")`;
query = `(email:*${searchTerm}* OR firstName:*${searchTerm}* OR lastName:*${searchTerm}* OR displayName:*${searchTerm}* OR authorityName:*${searchTerm}* OR authorityDisplayName:*${searchTerm}*) AND ANAME:("0/APP.DEFAULT")`;
}
return query;
}

View File

@@ -65,6 +65,7 @@ export class NodePermissionService {
/**
* Get permissions for a given node
*
* @param node Node to check permissions for
*/
getNodePermissions(node: Node): PermissionDisplayModel[] {

View File

@@ -89,7 +89,7 @@ export class SearchLogicalFilterComponent implements SearchWidget, OnInit {
fieldQuery += field + '"' + this.searchCondition[key].trim() + '"';
} else {
this.searchCondition[key].split(' ').filter((condition: string) => condition !== '').forEach((phrase: string) => {
const refinedPhrase = '\"' + phrase + '\"';
const refinedPhrase = '"' + phrase + '"';
fieldQuery += fieldQuery === '(' ?
`${key === LogicalSearchFields.EXCLUDE ? 'NOT ' : ''}${field}${refinedPhrase}` :
` ${connector} ${field}${refinedPhrase}`;

View File

@@ -49,15 +49,15 @@ export class SearchSliderComponent implements SearchWidget, OnInit {
ngOnInit() {
if (this.settings) {
if (this.settings.hasOwnProperty('min')) {
if (Object.prototype.hasOwnProperty.call(this.settings, 'min')) {
this.min = this.settings['min'];
}
if (this.settings.hasOwnProperty('max')) {
if (Object.prototype.hasOwnProperty.call(this.settings, 'max')) {
this.max = this.settings['max'];
}
if (this.settings.hasOwnProperty('step')) {
if (Object.prototype.hasOwnProperty.call(this.settings, 'step')) {
this.step = this.settings['step'];
}

View File

@@ -150,7 +150,7 @@ export abstract class BaseQueryBuilderService {
default: configuration.default || false,
selected: this.selectedConfiguration !== undefined ? index === this.selectedConfiguration : configuration.default
}));
} else if (!!configurations) {
} else if (configurations) {
return [
{
index: 0,

View File

@@ -103,7 +103,7 @@ export abstract class UploadBase implements OnInit, OnDestroy {
*/
uploadFiles(files: File[]): void {
const filteredFiles: FileModel[] = files
.map<FileModel>((file: File) => this.createFileModel(file, this.rootFolderId, ((file as any).webkitRelativePath || '').replace(/\/[^\/]*$/, '')));
.map<FileModel>((file: File) => this.createFileModel(file, this.rootFolderId, ((file as any).webkitRelativePath || '').replace(/\/[^/]*$/, '')));
this.uploadQueue(filteredFiles);
}

View File

@@ -306,7 +306,7 @@ describe('UploadDragAreaComponent', () => {
});
it('should upload a file to a specific target folder when dropped onto one', () => {
const fakePippoItem = {
const fakePngItem = {
fullPath: '/folder-fake/file-fake.png',
isDirectory: false,
isFile: true,
@@ -321,7 +321,7 @@ describe('UploadDragAreaComponent', () => {
const fakeCustomEvent: CustomEvent = new CustomEvent('CustomEvent', {
detail: {
data: getFakeShareDataRow(),
files: [fakePippoItem]
files: [fakePngItem]
}
});

View File

@@ -39,7 +39,7 @@ export class UploadVersionButtonComponent extends UploadButtonComponent implemen
node: Node;
protected createFileModel(file: File): FileModel {
const fileModel = super.createFileModel(file, this.rootFolderId, ((file as any).webkitRelativePath || '').replace(/\/[^\/]*$/, ''), this.node.id);
const fileModel = super.createFileModel(file, this.rootFolderId, ((file as any).webkitRelativePath || '').replace(/\/[^/]*$/, ''), this.node.id);
if (!this.isFileAcceptable(fileModel)) {
const message = this.translationService.instant('FILE_UPLOAD.VERSION.MESSAGES.INCOMPATIBLE_VERSION');

View File

@@ -52,7 +52,7 @@ describe('VersionCompatibilityDirective', () => {
let fixture: ComponentFixture<TestComponent>;
let versionCompatibilityService: VersionCompatibilityService;
const acsResponceMock = new VersionInfo({
const acsResponseMock = new VersionInfo({
display: '7.0.1',
major: '7',
minor: '0',
@@ -70,7 +70,7 @@ describe('VersionCompatibilityDirective', () => {
});
fixture = TestBed.createComponent(TestComponent);
versionCompatibilityService = TestBed.inject(VersionCompatibilityService);
spyOn(versionCompatibilityService, 'getAcsVersion').and.returnValue(acsResponceMock);
spyOn(versionCompatibilityService, 'getAcsVersion').and.returnValue(acsResponseMock);
});
it('should display component when the version is supported', () => {

View File

@@ -28,7 +28,7 @@ describe('VersionCompatibilityService', () => {
let discoveryApiService: DiscoveryApiService;
const mockProductInfo = new BehaviorSubject<RepositoryInfo>(null);
const acsResponceMock = {
const acsResponseMock = {
version: {
display: '7.0.1',
major: '7',
@@ -54,7 +54,7 @@ describe('VersionCompatibilityService', () => {
});
discoveryApiService = TestBed.inject(DiscoveryApiService);
versionCompatibilityService = TestBed.inject(VersionCompatibilityService);
mockProductInfo.next(acsResponceMock as RepositoryInfo);
mockProductInfo.next(acsResponseMock as RepositoryInfo);
versionCompatibilityService = new VersionCompatibilityService(discoveryApiService);
});