diff --git a/packages/angular/pwa/pwa/index.ts b/packages/angular/pwa/pwa/index.ts
index 2b4996f0f324..0389e686a40e 100644
--- a/packages/angular/pwa/pwa/index.ts
+++ b/packages/angular/pwa/pwa/index.ts
@@ -114,7 +114,10 @@ export default function (options: PwaOptions): Rule {
const buildTargets = [];
const testTargets = [];
for (const target of project.targets.values()) {
- if (target.builder === '@angular-devkit/build-angular:browser') {
+ if (
+ target.builder === '@angular-devkit/build-angular:browser' ||
+ target.builder === '@angular-devkit/build-angular:application'
+ ) {
buildTargets.push(target);
} else if (target.builder === '@angular-devkit/build-angular:karma') {
testTargets.push(target);
diff --git a/packages/angular/pwa/pwa/index_spec.ts b/packages/angular/pwa/pwa/index_spec.ts
index 9657b0493b31..e6b0d4e576bb 100644
--- a/packages/angular/pwa/pwa/index_spec.ts
+++ b/packages/angular/pwa/pwa/index_spec.ts
@@ -52,122 +52,123 @@ describe('PWA Schematic', () => {
);
});
- it('should run the service worker schematic', (done) => {
- schematicRunner
- .runSchematic('ng-add', defaultOptions, appTree)
-
- .then((tree) => {
- const configText = tree.readContent('/angular.json');
- const config = JSON.parse(configText);
- const swFlag = config.projects.bar.architect.build.options.serviceWorker;
- expect(swFlag).toEqual(true);
- done();
- }, done.fail);
- });
-
- it('should create icon files', (done) => {
+ it('should create icon files', async () => {
const dimensions = [72, 96, 128, 144, 152, 192, 384, 512];
const iconPath = '/projects/bar/src/assets/icons/icon-';
- schematicRunner
- .runSchematic('ng-add', defaultOptions, appTree)
-
- .then((tree) => {
- dimensions.forEach((d) => {
- const path = `${iconPath}${d}x${d}.png`;
- expect(tree.exists(path)).toEqual(true);
- });
- done();
- }, done.fail);
+ const tree = await schematicRunner.runSchematic('ng-add', defaultOptions, appTree);
+
+ dimensions.forEach((d) => {
+ const path = `${iconPath}${d}x${d}.png`;
+ expect(tree.exists(path)).toBeTrue();
+ });
});
- it('should create a manifest file', (done) => {
- schematicRunner
- .runSchematic('ng-add', defaultOptions, appTree)
+ it('should run the service worker schematic', async () => {
+ const tree = await schematicRunner.runSchematic('ng-add', defaultOptions, appTree);
+ const configText = tree.readContent('/angular.json');
+ const config = JSON.parse(configText);
+ const swFlag = config.projects.bar.architect.build.configurations.production.serviceWorker;
- .then((tree) => {
- expect(tree.exists('/projects/bar/src/manifest.webmanifest')).toEqual(true);
- done();
- }, done.fail);
+ expect(swFlag).toBe('projects/bar/ngsw-config.json');
});
- it('should set the name & short_name in the manifest file', (done) => {
- schematicRunner
- .runSchematic('ng-add', defaultOptions, appTree)
+ it('should create a manifest file', async () => {
+ const tree = await schematicRunner.runSchematic('ng-add', defaultOptions, appTree);
+ expect(tree.exists('/projects/bar/src/manifest.webmanifest')).toBeTrue();
+ });
+
+ it('should set the name & short_name in the manifest file', async () => {
+ const tree = await schematicRunner.runSchematic('ng-add', defaultOptions, appTree);
- .then((tree) => {
- const manifestText = tree.readContent('/projects/bar/src/manifest.webmanifest');
- const manifest = JSON.parse(manifestText);
+ const manifestText = tree.readContent('/projects/bar/src/manifest.webmanifest');
+ const manifest = JSON.parse(manifestText);
- expect(manifest.name).toEqual(defaultOptions.title);
- expect(manifest.short_name).toEqual(defaultOptions.title);
- done();
- }, done.fail);
+ expect(manifest.name).toEqual(defaultOptions.title);
+ expect(manifest.short_name).toEqual(defaultOptions.title);
});
- it('should set the name & short_name in the manifest file when no title provided', (done) => {
+ it('should set the name & short_name in the manifest file when no title provided', async () => {
const options = { ...defaultOptions, title: undefined };
- schematicRunner
- .runSchematic('ng-add', options, appTree)
+ const tree = await schematicRunner.runSchematic('ng-add', options, appTree);
- .then((tree) => {
- const manifestText = tree.readContent('/projects/bar/src/manifest.webmanifest');
- const manifest = JSON.parse(manifestText);
+ const manifestText = tree.readContent('/projects/bar/src/manifest.webmanifest');
+ const manifest = JSON.parse(manifestText);
- expect(manifest.name).toEqual(defaultOptions.project);
- expect(manifest.short_name).toEqual(defaultOptions.project);
- done();
- }, done.fail);
+ expect(manifest.name).toEqual(defaultOptions.project);
+ expect(manifest.short_name).toEqual(defaultOptions.project);
});
- it('should update the index file', (done) => {
- schematicRunner
- .runSchematic('ng-add', defaultOptions, appTree)
-
- .then((tree) => {
- const content = tree.readContent('projects/bar/src/index.html');
+ it('should update the index file', async () => {
+ const tree = await schematicRunner.runSchematic('ng-add', defaultOptions, appTree);
+ const content = tree.readContent('projects/bar/src/index.html');
- expect(content).toMatch(//);
- expect(content).toMatch(//);
- expect(content).toMatch(
- /