igniteui-angular-sovn
Version:
Ignite UI for Angular is a dependency-free Angular toolkit for building modern web apps
105 lines (91 loc) • 4.42 kB
text/typescript
import * as path from "path";
import { EmptyTree } from "@angular-devkit/schematics";
import {
SchematicTestRunner,
UnitTestTree,
} from "@angular-devkit/schematics/testing";
describe("Update 10.2.0", () => {
let appTree: UnitTestTree;
const schematicRunner = new SchematicTestRunner(
"ig-migrate",
path.join(__dirname, "../migration-collection.json")
);
const configJson = {
projects: {
testProj: {
root: "/",
sourceRoot: "/testSrc",
},
},
schematics: {
"@schematics/angular:component": {
prefix: "appPrefix",
},
},
};
beforeEach(() => {
appTree = new UnitTestTree(new EmptyTree());
appTree.create("/angular.json", JSON.stringify(configJson));
});
it("should remove the type property if the value is not a valid type", async () => {
appTree.create(
"/testSrc/appPrefix/component/test.component.html",
// eslint-disable-next-line max-len
`<igx-input-group type="line"></igx-input-group><igx-input-group type="box"></igx-input-group><igx-input-group type="border"></igx-input-group><igx-input-group type="search"></igx-input-group><igx-input-group type="bootstrap"></igx-input-group><igx-input-group type="fluent"></igx-input-group><igx-input-group type="fluent_search"></igx-input-group><igx-input-group type="indigo"></igx-input-group><igx-input-group type='bootstrap'></igx-input-group><igx-input-group type='fluent'></igx-input-group><igx-input-group type='fluent_search'></igx-input-group><igx-input-group type='indigo'></igx-input-group>`
);
const tree = await schematicRunner
.runSchematicAsync("migration-17", {}, appTree)
.toPromise();
expect(
tree.readContent("/testSrc/appPrefix/component/test.component.html")
// eslint-disable-next-line max-len
).toEqual(
`<igx-input-group type="line"></igx-input-group><igx-input-group type="box"></igx-input-group><igx-input-group type="border"></igx-input-group><igx-input-group type="search"></igx-input-group><igx-input-group></igx-input-group><igx-input-group></igx-input-group><igx-input-group></igx-input-group><igx-input-group></igx-input-group><igx-input-group></igx-input-group><igx-input-group></igx-input-group><igx-input-group></igx-input-group><igx-input-group></igx-input-group>`
);
});
it("should replace selectedRows() with selectedRows in ts files", async () => {
pending("set up tests for migrations through lang service");
});
it("Should remove references to deprecated `pane` property of `IExpansionPanelEventArgs`", async () => {
pending("set up tests for migrations through lang service");
appTree.create(
"/testSrc/appPrefix/component/expansion-test.component.ts",
`import { Component, ViewChild } from '@angular/core';
import { IExpansionPanelEventArgs, IgxExpansionPanelComponent } from 'igniteui-angular-sovn';
@Component({
selector: 'app-expansion-test',
templateUrl: './expansion-test.component.html',
styleUrls: ['./expansion-test.component.scss']
})
export class ExpansionTestComponent {
@ViewChild(IgxExpansionPanelComponent, { static: true })
public panel: IgxExpansionPanelComponent;
public onPanelOpened(event: IExpansionPanelEventArgs) {
console.log(event.panel);
}
}`
);
const tree = await schematicRunner
.runSchematicAsync("migration-17", {}, appTree)
.toPromise();
const expectedContent = `import { Component, ViewChild } from '@angular/core';
import { IExpansionPanelEventArgs, IgxExpansionPanelComponent } from 'igniteui-angular-sovn';
@Component({
selector: 'app-expansion-test',
templateUrl: './expansion-test.component.html',
styleUrls: ['./expansion-test.component.scss']
})
export class ExpansionTestComponent {
@ViewChild(IgxExpansionPanelComponent, { static: true })
public panel: IgxExpansionPanelComponent;
public onPanelOpened(event: IExpansionPanelEventArgs) {
console.log(event.owner);
}
}`;
expect(
tree.readContent(
"/testSrc/appPrefix/component/expansion-test.component.ts"
)
).toEqual(expectedContent);
});
});