igniteui-angular-sovn
Version:
Ignite UI for Angular is a dependency-free Angular toolkit for building modern web apps
145 lines (132 loc) • 5.46 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.1.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 upgrade the igx-action-icon to igx-navbar-action", async () => {
appTree.create(
"/testSrc/appPrefix/component/custom.component.html",
`<igx-navbar title="Test title">
<igx-action-icon>
<igx-icon>arrow_back</igx-icon>
</igx-action-icon>
</igx-navbar>`
);
const tree = await schematicRunner
.runSchematicAsync("migration-16", {}, appTree)
.toPromise();
expect(
tree.readContent(
"/testSrc/appPrefix/component/custom.component.html"
)
).toEqual(
`<igx-navbar title="Test title">
<igx-navbar-action>
<igx-icon>arrow_back</igx-icon>
</igx-navbar-action>
</igx-navbar>`
);
});
it("should update IgxActionIconDirective to IgxNavbarActionDirective", async () => {
appTree.create(
"/testSrc/appPrefix/component/custom.component.ts",
`import { IgxActionIconDirective } from 'igniteui-angular-sovn';
export class TestNavbar {
private actionIcon: IgxActionIconDirective; }`
);
const tree = await schematicRunner
.runSchematicAsync("migration-16", {}, appTree)
.toPromise();
expect(
tree.readContent("/testSrc/appPrefix/component/custom.component.ts")
).toEqual(
`import { IgxNavbarActionDirective } from 'igniteui-angular-sovn';
export class TestNavbar {
private actionIcon: IgxNavbarActionDirective; }`
);
});
it("should update DropPosition.None", async () => {
const origFileContent =
`import { Component, Injectable, ViewChild } from "@angular/core";` +
`import { IgxGridComponent, DropPosition } from "igniteui-angular-sovn";` +
`import { IgxColumnComponent } from "igniteui-angular-sovn";\r\n` +
` ` +
`export class GridSampleComponent {` +
` public grid1: IgxGridComponent;` +
` public move() {` +
` const column: IgxColumnComponent = this.grid1.columns[0];` +
` const column2: IgxColumnComponent = this.grid1.columns[1];` +
` this.grid1.moveColumn(col1, col2, DropPosition.None);` +
` }` +
`}`;
const expectedFileContent =
`import { Component, Injectable, ViewChild } from "@angular/core";` +
`import { IgxGridComponent, DropPosition } from "igniteui-angular-sovn";` +
`import { IgxColumnComponent } from "igniteui-angular-sovn";\r\n` +
` ` +
`export class GridSampleComponent {` +
` public grid1: IgxGridComponent;` +
` public move() {` +
` const column: IgxColumnComponent = this.grid1.columns[0];` +
` const column2: IgxColumnComponent = this.grid1.columns[1];` +
` this.grid1.moveColumn(col1, col2, DropPosition.AfterDropTarget);` +
` }` +
`}`;
appTree.create(
"/testSrc/appPrefix/component/drop.component.ts",
origFileContent
);
const tree = await schematicRunner
.runSchematicAsync("migration-16", {}, appTree)
.toPromise();
expect(
tree.readContent("/testSrc/appPrefix/component/drop.component.ts")
).toEqual(expectedFileContent);
});
it("should replace onDataPreLoad with onScroll ", async () => {
appTree.create(
`/testSrc/appPrefix/component/tree-grid.component.html`,
'<igx-tree-grid (onDataPreLoad)="handleEvent($event)"></igx-tree-grid>'
);
const tree = await schematicRunner
.runSchematicAsync("migration-16", {}, appTree)
.toPromise();
expect(
tree.readContent(
"/testSrc/appPrefix/component/tree-grid.component.html"
)
).toEqual(
'<igx-tree-grid (onScroll)="handleEvent($event)"></igx-tree-grid>'
);
});
});