From 6dc14c3cbeb1391bf4556ec2c62bd51615c711c8 Mon Sep 17 00:00:00 2001 From: Mark Wolff Date: Fri, 26 Jun 2020 14:54:08 -0400 Subject: [PATCH] fix: do not throw when no dir (#48) --- .../platform/nodejs/persist/fileSystemPersist.ts | 6 +++++- .../nodejs/persist/fileSystemPersist.test.ts | 13 +++++++++++-- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/packages/azure-opentelemetry-exporter/src/platform/nodejs/persist/fileSystemPersist.ts b/packages/azure-opentelemetry-exporter/src/platform/nodejs/persist/fileSystemPersist.ts index 6e539b6..ff8bb23 100644 --- a/packages/azure-opentelemetry-exporter/src/platform/nodejs/persist/fileSystemPersist.ts +++ b/packages/azure-opentelemetry-exporter/src/platform/nodejs/persist/fileSystemPersist.ts @@ -59,7 +59,11 @@ export class FileSystemPersist implements PersistentStorage { fs.stat(tempDir, (statErr: Error | null, stats: fs.Stats) => { if (statErr) { - callback(statErr); + if (((statErr as unknown) as { code: string }).code === 'ENOENT') { + callback(null); + } else { + callback(statErr); + } } else if (stats.isDirectory()) { fs.readdir(tempDir, (error, origFiles) => { if (!error) { diff --git a/packages/azure-opentelemetry-exporter/test/platform/nodejs/persist/fileSystemPersist.test.ts b/packages/azure-opentelemetry-exporter/test/platform/nodejs/persist/fileSystemPersist.test.ts index 12f3b1a..66a1bae 100644 --- a/packages/azure-opentelemetry-exporter/test/platform/nodejs/persist/fileSystemPersist.test.ts +++ b/packages/azure-opentelemetry-exporter/test/platform/nodejs/persist/fileSystemPersist.test.ts @@ -94,15 +94,24 @@ describe('FileSystemPersist', () => { }); describe('#shift()', () => { + it('should not crash if folder does not exist', (done) => { + const persister = new FileSystemPersist({ instrumentationKey }); + persister.shift((err) => { + assert.strictEqual(err, null); + done(); + }); + }); + it('should not crash if file does not exist', (done) => { const persister = new FileSystemPersist({ instrumentationKey }); - assert.doesNotThrow(() => { + fs.mkdir(tempDir, () => { persister.shift((err) => { - assert.ok(err); + assert.strictEqual(err, null); done(); }); }); }); + it('should get the first file on disk and return it', (done) => { const persister = new FileSystemPersist({ instrumentationKey });