mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-07-24 17:32:15 +00:00
[ADF-5146] Upgrade to Angular 10 (#5834)
* remove useless module * upgrade to angular 8 * upgrade material to v8 * upgrade adf libs * migrate demo shell to v8 * upgrade to angular 9 * upgrade material to v9 * remove hammer * upgrade nx * upgrade datetime picker * upgrade flex layout * update core api * remove entry components * code fixes * upgrade testbed usage * code fixes * remove unnecessary core-js from tests * upgrade CLI * ts config fixes * fix builds * fix testing config * compile fixes * fix demo shell dev setup * fix core tests * fix card view import * upgrade nx * disable smart builds for now * remove fdescribe * restore smart builds * fix issues * unify tsconfigs and fix newly found issues * fix configuration and cleanup package scripts * improved production build from the same config * use ADF libs directly instead of node_modules * disable smart build * single app configuration (angular) * fix core build * fix build scripts * lint fixes * fix linting setup * fix linting rules * various fixes * disable affected libs for unit tests * cleanup insights package.json * simplify smart-build * fix content tests * fix tests * test fixes * fix tests * fix test * fix tests * disable AppExtensionsModule (monaco example) * remove monaco extension module * upgrade bundle check rules * fix insights tests and karma config * fix protractor config * e2e workaround * upgrade puppeteer and split linting and build * reusable resources config * update protractor config * fix after rebase * fix protractor config * fix e2e tsconfig * update e2e setup * Save demoshell artifact on S3 and remove travis cache * Push the libs on S3 and fetch before releasing it * Add deps * Add dependencies among libs and run only affected unit test and build * fix the travis stage name * fix after renaming dev to demoshell * force the order of the projects * remove unused dependencies * fix content e2e script * exit codes fix * add extra exit codes to core e2e * postinstall hook and package cleanup * cleanup packages * remove deprecated code and dependency on router * improve bundle analyzer script * minor code fixes * update spec * fix code after rebase * upgrade protractor after rebase * fix e2e mapping lib * Update tsconfig.e2e.json * update e2e tsconfig * fix angular config * fix protractor runs * cache dist folder for libs * update material selectors for dropdowns * selector fixes * remove duplicated e2e that have unit tests already * fix login selector * fix e2e * fix test * fix import issues * fix selector * cleanup old monaco extension files * cleanup demo shell login * add protractor max retries * disable customisations of protractor * fix login validation * fix after rebase * fix after rebase, disable latest versions of libs * Hide the report tab and rollback the localstorage * rename protractor config back to js * restore lint as part of build * cleanup code * do not copy anything to node_modules on dist test * fix unit tests * config fixes * fix code * fix code after rebase * fix tests * remove existing words from spellcheck * remove useless directive decorators * update package.json after rebase * add js-api back * code fixes * add missing export * update configs * fix code * try fix the sso login test * fix * remove puppeteer unit * fix e2e script * fix * make provider easy * fix routes module before upgrade * fix unit tests * upgrade angular cli * upgrade to angular 10 Co-authored-by: maurizio vitale <maurizio.vitale@alfresco.com> Co-authored-by: Eugenio Romano <eugenio.romano@alfresco.com> Co-authored-by: Eugenio Romano <eromano@users.noreply.github.com>
This commit is contained in:
@@ -24,7 +24,7 @@ import { setupTestBed } from '../../../../testing/setup-test-bed';
|
||||
import { FormBaseModule } from 'core/form/form-base.module';
|
||||
import { TranslateLoader, TranslateModule } from '@ngx-translate/core';
|
||||
import { TranslateLoaderService } from 'core/services';
|
||||
import { MatCheckboxModule } from '@angular/material';
|
||||
import { MatCheckboxModule } from '@angular/material/checkbox';
|
||||
import { CoreTestingModule } from '../../../../testing';
|
||||
|
||||
describe('CheckboxWidgetComponent', () => {
|
||||
|
@@ -70,8 +70,8 @@ describe('ContentWidgetComponent', () => {
|
||||
});
|
||||
|
||||
beforeEach(async(() => {
|
||||
serviceContent = TestBed.get(ContentService);
|
||||
processContentService = TestBed.get(ProcessContentService);
|
||||
serviceContent = TestBed.inject(ContentService);
|
||||
processContentService = TestBed.inject(ProcessContentService);
|
||||
}));
|
||||
|
||||
beforeEach(() => {
|
||||
|
@@ -18,7 +18,7 @@
|
||||
/* tslint:disable:component-selector */
|
||||
|
||||
import { Component, OnInit, ViewEncapsulation, OnDestroy } from '@angular/core';
|
||||
import { DateAdapter, MAT_DATE_FORMATS } from '@angular/material';
|
||||
import { DateAdapter, MAT_DATE_FORMATS } from '@angular/material/core';
|
||||
import { DatetimeAdapter, MAT_DATETIME_FORMATS } from '@mat-datetimepicker/core';
|
||||
import { MomentDatetimeAdapter, MAT_MOMENT_DATETIME_FORMATS } from '@mat-datetimepicker/moment';
|
||||
import moment from 'moment-es6';
|
||||
|
@@ -21,7 +21,7 @@ import { UserPreferencesService, UserPreferenceValues } from '../../../../servic
|
||||
import { MomentDateAdapter } from '../../../../utils/moment-date-adapter';
|
||||
import { MOMENT_DATE_FORMATS } from '../../../../utils/moment-date-formats.model';
|
||||
import { Component, OnInit, ViewEncapsulation, OnDestroy } from '@angular/core';
|
||||
import { DateAdapter, MAT_DATE_FORMATS } from '@angular/material';
|
||||
import { DateAdapter, MAT_DATE_FORMATS } from '@angular/material/core';
|
||||
import moment from 'moment-es6';
|
||||
import { Moment } from 'moment';
|
||||
import { FormService } from './../../../services/form.service';
|
||||
|
@@ -38,9 +38,8 @@ describe('DropdownWidgetComponent', () => {
|
||||
let element: HTMLElement;
|
||||
|
||||
function openSelect() {
|
||||
const dropdown = fixture.debugElement.query(By.css('[class="mat-select-trigger"]'));
|
||||
dropdown.triggerEventHandler('click', null);
|
||||
fixture.detectChanges();
|
||||
const dropdown = fixture.debugElement.nativeElement.querySelector('.mat-select-trigger');
|
||||
dropdown.click();
|
||||
}
|
||||
|
||||
const fakeOptionList: FormFieldOption[] = [
|
||||
@@ -59,8 +58,8 @@ describe('DropdownWidgetComponent', () => {
|
||||
fixture = TestBed.createComponent(DropdownWidgetComponent);
|
||||
widget = fixture.componentInstance;
|
||||
element = fixture.nativeElement;
|
||||
formService = TestBed.get(FormService);
|
||||
visibilityService = TestBed.get(WidgetVisibilityService);
|
||||
formService = TestBed.inject(FormService);
|
||||
visibilityService = TestBed.inject(WidgetVisibilityService);
|
||||
widget.field = new FormFieldModel(new FormModel());
|
||||
}));
|
||||
|
||||
@@ -315,12 +314,15 @@ describe('DropdownWidgetComponent', () => {
|
||||
|
||||
openSelect();
|
||||
|
||||
fixture.detectChanges();
|
||||
fixture.whenStable()
|
||||
.then(() => {
|
||||
fixture.detectChanges();
|
||||
expect(element.querySelector('#dropdown-id')).not.toBeNull();
|
||||
const option = fixture.debugElement.query(By.css('.mat-option')).nativeElement;
|
||||
expect(option.innerText.trim()).toEqual('FakeValue');
|
||||
const options = fixture.debugElement.queryAll(By.css('.mat-option-text'));
|
||||
expect(options.length).toBe(1);
|
||||
|
||||
const option = options[0].nativeElement;
|
||||
expect(option.innerText).toEqual('FakeValue');
|
||||
});
|
||||
}));
|
||||
});
|
||||
|
@@ -86,8 +86,8 @@ describe('DynamicTableWidgetComponent', () => {
|
||||
|
||||
beforeEach(() => {
|
||||
const field = new FormFieldModel(new FormModel());
|
||||
logService = TestBed.get(LogService);
|
||||
formService = TestBed.get(FormService);
|
||||
logService = TestBed.inject(LogService);
|
||||
formService = TestBed.inject(FormService);
|
||||
table = new DynamicTableModel(field, formService);
|
||||
const changeDetectorSpy = jasmine.createSpyObj('cd', ['detectChanges']);
|
||||
const nativeElementSpy = jasmine.createSpyObj('nativeElement', ['querySelector']);
|
||||
|
@@ -23,7 +23,7 @@ import { DynamicTableModel } from './../../dynamic-table.widget.model';
|
||||
import { DateEditorComponent } from './date.editor';
|
||||
import { setupTestBed } from '../../../../../../testing/setup-test-bed';
|
||||
import { By } from '@angular/platform-browser';
|
||||
import { MatDatepickerInputEvent } from '@angular/material';
|
||||
import { MatDatepickerInputEvent } from '@angular/material/datepicker';
|
||||
import { CoreTestingModule } from '../../../../../../testing';
|
||||
import { TranslateModule } from '@ngx-translate/core';
|
||||
|
||||
|
@@ -22,7 +22,8 @@ import { UserPreferencesService, UserPreferenceValues } from '../../../../../../
|
||||
import { MomentDateAdapter } from '../../../../../../utils/moment-date-adapter';
|
||||
import { MOMENT_DATE_FORMATS } from '../../../../../../utils/moment-date-formats.model';
|
||||
import { Component, Input, OnInit, OnDestroy } from '@angular/core';
|
||||
import { DateAdapter, MAT_DATE_FORMATS, MatDatepickerInputEvent } from '@angular/material';
|
||||
import { DateAdapter, MAT_DATE_FORMATS } from '@angular/material/core';
|
||||
import { MatDatepickerInputEvent } from '@angular/material/datepicker';
|
||||
import moment from 'moment-es6';
|
||||
import { Moment } from 'moment';
|
||||
import { DynamicTableColumn } from './../../dynamic-table-column.model';
|
||||
|
@@ -21,7 +21,7 @@ import { UserPreferencesService, UserPreferenceValues } from '../../../../../../
|
||||
import { MomentDateAdapter } from '../../../../../../utils/moment-date-adapter';
|
||||
import { MOMENT_DATE_FORMATS } from '../../../../../../utils/moment-date-formats.model';
|
||||
import { Component, Input, OnInit, OnDestroy } from '@angular/core';
|
||||
import { DateAdapter, MAT_DATE_FORMATS } from '@angular/material';
|
||||
import { DateAdapter, MAT_DATE_FORMATS } from '@angular/material/core';
|
||||
import moment from 'moment-es6';
|
||||
import { Moment } from 'moment';
|
||||
import { DynamicTableColumn } from './../../dynamic-table-column.model';
|
||||
|
@@ -45,9 +45,9 @@ describe('PeopleWidgetComponent', () => {
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(PeopleWidgetComponent);
|
||||
formService = TestBed.get(FormService);
|
||||
formService = TestBed.inject(FormService);
|
||||
|
||||
translationService = TestBed.get(TranslateService);
|
||||
translationService = TestBed.inject(TranslateService);
|
||||
spyOn(translationService, 'instant').and.callFake((key) => {
|
||||
return key;
|
||||
});
|
||||
|
@@ -52,7 +52,7 @@ import {
|
||||
})
|
||||
export class PeopleWidgetComponent extends WidgetComponent implements OnInit {
|
||||
|
||||
@ViewChild('inputValue')
|
||||
@ViewChild('inputValue', { static: true })
|
||||
input: ElementRef;
|
||||
|
||||
@Output()
|
||||
|
@@ -25,7 +25,8 @@ import { FormFieldModel } from './../core/form-field.model';
|
||||
import { FormModel } from './../core/form.model';
|
||||
import { RadioButtonsWidgetComponent } from './radio-buttons.widget';
|
||||
import { setupTestBed } from '../../../../testing/setup-test-bed';
|
||||
import { MatIconModule, MatRadioModule } from '@angular/material';
|
||||
import { MatIconModule } from '@angular/material/icon';
|
||||
import { MatRadioModule } from '@angular/material/radio';
|
||||
import { FormsModule } from '@angular/forms';
|
||||
import { CoreTestingModule } from '../../../../testing';
|
||||
import { TranslateModule } from '@ngx-translate/core';
|
||||
|
@@ -22,7 +22,8 @@ import { FormModel } from '../core/form.model';
|
||||
import { TextWidgetComponent } from './text.widget';
|
||||
import { setupTestBed } from '../../../../testing/setup-test-bed';
|
||||
import { FormsModule } from '@angular/forms';
|
||||
import { MatInputModule, MatIconModule } from '@angular/material';
|
||||
import { MatIconModule } from '@angular/material/icon';
|
||||
import { MatInputModule } from '@angular/material/input';
|
||||
import { CoreTestingModule } from '../../../../testing';
|
||||
import { TranslateModule } from '@ngx-translate/core';
|
||||
|
||||
@@ -145,29 +146,32 @@ describe('TextWidgetComponent', () => {
|
||||
});
|
||||
fixture.detectChanges();
|
||||
enterValueInTextField(element.querySelector('#text-id'), 'TEXT');
|
||||
await fixture.whenStable();
|
||||
fixture.detectChanges();
|
||||
errorWidget = element.querySelector('error-widget div[class="adf-error-text"]');
|
||||
|
||||
await fixture.whenStable();
|
||||
errorWidget = element.querySelector('.adf-error-text');
|
||||
expect(errorWidget).toBeDefined();
|
||||
expect(errorWidget.innerHTML).toBe('FORM.FIELD.VALIDATOR.AT_LEAST_LONG');
|
||||
|
||||
expect(widget.field.isValid).toBe(false);
|
||||
|
||||
enterValueInTextField(element.querySelector('#text-id'), 'TEXT VALUE');
|
||||
|
||||
await fixture.whenStable();
|
||||
fixture.detectChanges();
|
||||
errorWidget = element.querySelector('error-widget div[class="adf-error-text"]');
|
||||
expect(errorWidget).toBeNull();
|
||||
|
||||
errorWidget = element.querySelector('.adf-error-text');
|
||||
|
||||
expect(widget.field.isValid).toBe(true);
|
||||
|
||||
enterValueInTextField(element.querySelector('#text-id'), 'TEXT VALUE TOO LONG');
|
||||
await fixture.whenStable();
|
||||
|
||||
fixture.detectChanges();
|
||||
await fixture.whenStable();
|
||||
|
||||
expect(widget.field.isValid).toBe(false);
|
||||
errorWidget = element.querySelector('error-widget div[class="adf-error-text"]');
|
||||
expect(errorWidget).toBeDefined();
|
||||
|
||||
errorWidget = element.querySelector('.adf-error-text');
|
||||
expect(errorWidget.innerHTML).toBe('FORM.FIELD.VALIDATOR.NO_LONGER_THAN');
|
||||
});
|
||||
|
||||
|
@@ -43,7 +43,7 @@ describe('TypeaheadWidgetComponent', () => {
|
||||
});
|
||||
|
||||
beforeEach(() => {
|
||||
translationService = TestBed.get(TranslateService);
|
||||
translationService = TestBed.inject(TranslateService);
|
||||
spyOn(translationService, 'instant').and.callFake((key) => { return key; });
|
||||
spyOn(translationService, 'get').and.callFake((key) => { return of(key); });
|
||||
|
||||
|
@@ -100,7 +100,7 @@ describe('UploadWidgetComponent', () => {
|
||||
uploadWidgetComponent = fixture.componentInstance;
|
||||
element = fixture.nativeElement;
|
||||
debugElement = fixture.debugElement;
|
||||
contentService = TestBed.get(ProcessContentService);
|
||||
contentService = TestBed.inject(ProcessContentService);
|
||||
}));
|
||||
|
||||
it('should setup with field data', () => {
|
||||
@@ -147,7 +147,7 @@ describe('UploadWidgetComponent', () => {
|
||||
type: FormFieldTypes.UPLOAD,
|
||||
readOnly: false
|
||||
});
|
||||
formServiceInstance = TestBed.get(FormService);
|
||||
formServiceInstance = TestBed.inject(FormService);
|
||||
uploadWidgetComponent.field.value = [];
|
||||
});
|
||||
|
||||
|
Reference in New Issue
Block a user