File tree Expand file tree Collapse file tree 4 files changed +94
-2
lines changed
components/packages/src/schematics/migrations Expand file tree Collapse file tree 4 files changed +94
-2
lines changed Original file line number Diff line number Diff line change 1010 "factory" : " ./update-7/add-autonumeric-dependency" ,
1111 "description" : " Add autonumeric as a dependency since @skyux/autonumeric@7 references autonumeric as a peer."
1212 },
13+ "add-axe-core-dependency" : {
14+ "version" : " 7.0.0-beta.0" ,
15+ "factory" : " ./update-7/add-axe-core-dependency" ,
16+ "description" : " Add axe-core as a dependency since @skyux-sdk/testing@7 references axe-core as a peer."
17+ },
1318 "add-moment-dependency" : {
1419 "version" : " 7.0.0-beta.0" ,
1520 "factory" : " ./update-7/add-moment-dependency" ,
Original file line number Diff line number Diff line change 1+ import { SchematicTestRunner } from '@angular-devkit/schematics/testing' ;
2+
3+ import { join } from 'path' ;
4+
5+ import { createTestApp } from '../../testing/scaffold' ;
6+
7+ describe ( 'Migrations > Add axe-core as a dependency' , ( ) => {
8+ const runner = new SchematicTestRunner (
9+ 'migrations' ,
10+ join ( __dirname , '../migration-collection.json' )
11+ ) ;
12+
13+ async function setupTest ( ) {
14+ const tree = await createTestApp ( runner , {
15+ projectName : 'my-app' ,
16+ } ) ;
17+
18+ return {
19+ runSchematic : ( ) =>
20+ runner
21+ . runSchematicAsync ( 'add-axe-core-dependency' , { } , tree )
22+ . toPromise ( ) ,
23+ tree,
24+ } ;
25+ }
26+
27+ it ( 'should add axe-core as a dependency if @skyux-sdk/testing installed' , async ( ) => {
28+ const { runSchematic, tree } = await setupTest ( ) ;
29+
30+ tree . overwrite (
31+ '/package.json' ,
32+ '{"devDependencies": { "@skyux-sdk/testing": "7.0.0"}}'
33+ ) ;
34+
35+ await runSchematic ( ) ;
36+
37+ expect ( tree . readJson ( '/package.json' ) ) . toEqual ( {
38+ devDependencies : {
39+ '@skyux-sdk/testing' : '7.0.0' ,
40+ 'axe-core' : '3.5.6' ,
41+ } ,
42+ } ) ;
43+ } ) ;
44+
45+ it ( 'should not add axe-core as a dependency if @skyux-sdk/testing not installed' , async ( ) => {
46+ const { runSchematic, tree } = await setupTest ( ) ;
47+
48+ tree . overwrite ( '/package.json' , '{}' ) ;
49+
50+ await runSchematic ( ) ;
51+
52+ expect ( tree . readJson ( '/package.json' ) ) . toEqual ( { } ) ;
53+ } ) ;
54+ } ) ;
Original file line number Diff line number Diff line change 1+ import { Rule } from '@angular-devkit/schematics' ;
2+ import { NodePackageInstallTask } from '@angular-devkit/schematics/tasks' ;
3+ import {
4+ NodeDependencyType ,
5+ addPackageJsonDependency ,
6+ } from '@schematics/angular/utility/dependencies' ;
7+
8+ import { readRequiredFile } from '../../utility/tree' ;
9+
10+ export default function ( ) : Rule {
11+ return async ( tree , context ) => {
12+ const packageJson : {
13+ dependencies ?: Record < string , string > ;
14+ devDependencies ?: Record < string , string > ;
15+ } = JSON . parse ( readRequiredFile ( tree , '/package.json' ) ) ;
16+
17+ const dependencies : Record < string , string > = {
18+ ...( packageJson . dependencies || { } ) ,
19+ ...( packageJson . devDependencies || { } ) ,
20+ } ;
21+
22+ if ( dependencies [ '@skyux-sdk/testing' ] ) {
23+ context . addTask ( new NodePackageInstallTask ( ) ) ;
24+
25+ addPackageJsonDependency ( tree , {
26+ type : NodeDependencyType . Dev ,
27+ name : 'axe-core' ,
28+ version : '3.5.6' ,
29+ overwrite : false ,
30+ } ) ;
31+ }
32+ } ;
33+ }
Original file line number Diff line number Diff line change 1919 "@angular/common" : " ^14.2.0" ,
2020 "@angular/core" : " ^14.2.0" ,
2121 "@angular/platform-browser" : " ^14.2.0" ,
22- "@skyux/i18n" : " 0.0.0-PLACEHOLDER"
22+ "@skyux/i18n" : " 0.0.0-PLACEHOLDER" ,
23+ "axe-core" : " ^3.5.6 || ^4.5.0"
2324 },
2425 "dependencies" : {
25- "axe-core" : " 3.5.6" ,
2626 "tslib" : " ^2.3.1"
2727 }
2828}
You can’t perform that action at this time.
0 commit comments