Skip to content

Commit 18c5824

Browse files
committed
AUM - Error Handling and rejection - Batched Promises
1 parent 5217649 commit 18c5824

2 files changed

Lines changed: 18 additions & 8 deletions

File tree

src/m365/tenant/commands/auditlog/auditlog-report.spec.ts

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import Utils from '../../../../Utils';
1010
import commands from '../../commands';
1111
const command: Command = require('./auditlog-report');
1212

13-
describe.only(commands.TENANT_AUDITLOG_REPORT, () => {
13+
describe(commands.TENANT_AUDITLOG_REPORT, () => {
1414
let log: string[];
1515
let logger: Logger;
1616
let loggerLogSpy: sinon.SinonSpy;
@@ -622,9 +622,16 @@ describe.only(commands.TENANT_AUDITLOG_REPORT, () => {
622622
});
623623
});
624624

625-
it('Handles Error - For a particular Content Audit Content URL', (done) => {
625+
it('command correctly handles error for a particular Content Audit Content URL of a Batched Promise', (done) => {
626626
const err = 'Invalid request';
627627
sinon.stub(request, 'get').callsFake((opts) => {
628+
if ((opts.url as string).indexOf('activity/feed/subscriptions/list') > -1) {
629+
return Promise.resolve(JSONActiveSubscription);
630+
}
631+
632+
if ((opts.url as string).indexOf('activity/feed/subscriptions/content') > -1) {
633+
return Promise.resolve(JSONListAuditContent);
634+
}
628635

629636
if ((opts.url as string).indexOf('/activity/feed/audit/') > -1) {
630637
return Promise.reject(err);

src/m365/tenant/commands/auditlog/auditlog-report.ts

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -93,10 +93,11 @@ class TenantAuditlogReportCommand extends Command {
9393
return this.startContentSubscriptionIfNotActive(args, logger)
9494
.then((): Promise<AuditContentList[]> => this.getAuditContentList(args, logger))
9595
.then((auditContentLists: AuditContentList[]): Promise<any> => this.getBatchedPromises(auditContentLists, 10))
96-
.then((batchedPromise : Promise<any>[]): Promise<void> => {
97-
return new Promise<void>((resolve: () => void): void => {
98-
if (batchedPromise.length > 0) this.getBatchedAuditlogData(logger,batchedPromise, 0, resolve);
99-
else resolve(); })
96+
.then((batchedPromise: Promise<any>[]): Promise<void> => {
97+
return new Promise<void>((resolve: () => void, reject: (err: any) => void): void => {
98+
if (batchedPromise.length > 0) this.getBatchedAuditlogData(logger, batchedPromise, 0, resolve, reject);
99+
else resolve();
100+
})
100101
})
101102
.then((): AuditlogReport[] => { return this.completeAuditReports.flat(2) });
102103
}
@@ -178,7 +179,7 @@ class TenantAuditlogReportCommand extends Command {
178179
return Promise.resolve(batchedPromises);
179180
}
180181

181-
private getBatchedAuditlogData(logger: Logger,batchedPromiseList : any, batchNumber: number, resolve: () => void): void {
182+
private getBatchedAuditlogData(logger: Logger, batchedPromiseList: any, batchNumber: number, resolve: () => void, reject: (err: any) => void): void {
182183
if (this.verbose) {
183184
logger.logToStderr(`Starting Batch : ${batchNumber}`);
184185
}
@@ -188,11 +189,13 @@ class TenantAuditlogReportCommand extends Command {
188189
.then((data: any) => {
189190
this.completeAuditReports.push(data);
190191
if (batchNumber < batchedPromiseList.length - 1) {
191-
this.getBatchedAuditlogData(logger,batchedPromiseList, ++batchNumber, resolve)
192+
this.getBatchedAuditlogData(logger, batchedPromiseList, ++batchNumber, resolve, reject)
192193
}
193194
else {
194195
resolve();
195196
}
197+
}, (err: any): void => {
198+
reject(err);
196199
});
197200
}
198201

0 commit comments

Comments
 (0)