diff --git a/packages/cli-e2e/__tests__/__snapshots__/atomic.specs.ts.snap b/packages/cli-e2e/__tests__/__snapshots__/atomic.specs.ts.snap index df1bee79bb..b0cee6f7dd 100644 --- a/packages/cli-e2e/__tests__/__snapshots__/atomic.specs.ts.snap +++ b/packages/cli-e2e/__tests__/__snapshots__/atomic.specs.ts.snap @@ -86,11 +86,11 @@ HashedFolder { HashedFolder { "children": [ HashedFile { - "hash": "61GVF7l8bCVXW00H2rtInTKwoqY=", + "hash": "e5DQ3kRU03Vmp2BC+mjlSypQjKE=", "name": "index.css", }, ], - "hash": "FQZ6fv/Z/8DhwZWuUbrLwgTt6r8=", + "hash": "IMDEBLQ/slaFFRst+lJYHMRm07E=", "name": "style", }, HashedFolder { @@ -104,7 +104,7 @@ HashedFolder { "name": "utils", }, ], - "hash": "pBlrdRw5yuMk/S0mFDAUBGrEvMs=", + "hash": "K9gD9O4uCLlQbxYAgmEW6K+5EAw=", "name": "src", }, HashedFile { @@ -112,7 +112,7 @@ HashedFolder { "name": "tsconfig.json", }, ], - "hash": "MX8XJmhwXYKcItyHsBvb0tWTjlM=", + "hash": "TZXkS/G4E85OYZrwyJxf/QI7lJ8=", "name": "normalizedDir", } `; @@ -329,11 +329,11 @@ HashedFolder { HashedFolder { "children": [ HashedFile { - "hash": "/limo6D9Trxh05AOjVfMeecwXR8=", + "hash": "xbqB+xpmHNlBnQf+PCHR+rT3tfg=", "name": "index.css", }, ], - "hash": "/ARqEzx1ZY/+YdpH3eOpUbZnjj8=", + "hash": "Z+bQXHQFJdpSE56ncUOv3fWRy6w=", "name": "style", }, HashedFolder { @@ -347,7 +347,7 @@ HashedFolder { "name": "utils", }, ], - "hash": "FJTdsvHKymcS4bWGsVDxdv5+xI0=", + "hash": "9IWPASf2gKXfg4rrJ+k4DSwv4c4=", "name": "src", }, HashedFile { @@ -355,7 +355,7 @@ HashedFolder { "name": "tsconfig.json", }, ], - "hash": "fXSss5dlkGuizSP8OXlIF3OvP2Q=", + "hash": "20bLNlmkPR5jmaL2CitCTveWor8=", "name": "normalizedDir", } `; diff --git a/packages/cli-e2e/__tests__/angular.specs.ts b/packages/cli-e2e/__tests__/angular.specs.ts index 8496597800..3daf7a5f6d 100644 --- a/packages/cli-e2e/__tests__/angular.specs.ts +++ b/packages/cli-e2e/__tests__/angular.specs.ts @@ -240,7 +240,9 @@ describe('ui:create:angular', () => { message.indexOf('Warnings while compiling') === -1 && message.indexOf( 'require function is used in a way in which dependencies cannot be statically extracted' - ) === -1 + ) === -1 && + message.indexOf('@reduxjs/toolkit/dist/uncheckedindexed.ts') === + -1 ) ).toEqual([]); }, diff --git a/packages/cli/core/src/lib/snapshot/expandedPreviewer/expandedPreviewer.ts b/packages/cli/core/src/lib/snapshot/expandedPreviewer/expandedPreviewer.ts index 5f77e36420..43b6f9f355 100644 --- a/packages/cli/core/src/lib/snapshot/expandedPreviewer/expandedPreviewer.ts +++ b/packages/cli/core/src/lib/snapshot/expandedPreviewer/expandedPreviewer.ts @@ -15,6 +15,7 @@ import {DotFolder} from '../../project/dotFolder'; import {cwd} from 'process'; import {buildResourcesToExport} from '../pullModel/validation/model'; import {startSpinner, stopSpinner} from '@coveo/cli-commons/utils/ux'; +import {SnapshotReporter} from '../snapshotReporter'; export class ExpandedPreviewer { private static readonly previewDirectoryName = 'preview'; @@ -28,9 +29,8 @@ export class ExpandedPreviewer { private readonly projectToPreview: Project, private readonly shouldDelete: boolean ) { - this.resourcesToPreview = Object.keys( - report.resourceOperationResults - ) as ResourceSnapshotType[]; + const reporter = new SnapshotReporter(report); + this.resourcesToPreview = reporter.getAffectedResourceTypes(); } private static get previewDirectory() { diff --git a/packages/cli/core/src/lib/snapshot/snapshotReporter.ts b/packages/cli/core/src/lib/snapshot/snapshotReporter.ts index 4414edace1..05b33b7203 100644 --- a/packages/cli/core/src/lib/snapshot/snapshotReporter.ts +++ b/packages/cli/core/src/lib/snapshot/snapshotReporter.ts @@ -67,6 +67,27 @@ export class SnapshotReporter { ) > 0; } + public getAffectedResourceTypes(): ResourceSnapshotType[] { + const isResourceTypeReportAffected = ( + report: ResourceSnapshotsReportOperationModel + ) => + Object.values(report).reduce( + (operation, total) => operation + total, + 0 + ) === 0; + const changedResourcesTypes: ResourceSnapshotType[] = []; + for (const resourceType of Object.keys(this.report.resourceOperations)) { + if ( + isResourceTypeReportAffected( + this.report.resourceOperations[resourceType] + ) + ) { + changedResourcesTypes.push(resourceType as ResourceSnapshotType); + } + } + return changedResourcesTypes; + } + public hasChangedResources() { const totalUnchanges = this.getOperationTypeTotalCount('resourcesUnchanged');