feat: Add hardened error handling and retries (#2451)

- Closes #1830
 - Closes #2099
This commit is contained in:
Dermot Duffy
2026-06-30 17:45:12 -07:00
committed by dermotduffy
parent 4bc787e2b7
commit 47bcce93d3
182 changed files with 7877 additions and 4043 deletions
+20 -25
View File
@@ -6,9 +6,8 @@ describe('Initializer', () => {
const initializer = new Initializer();
expect(initializer.isInitialized('foo')).toBeFalsy();
expect(
await initializer.initializeIfNecessary('foo', async () => true),
).toBeTruthy();
await initializer.initializeIfNecessary('foo', async () => {});
expect(initializer.isInitialized('foo')).toBeTruthy();
});
@@ -16,9 +15,7 @@ describe('Initializer', () => {
const initializer = new Initializer();
expect(initializer.isInitialized('foo')).toBeFalsy();
expect(
await initializer.initializeIfNecessary('foo', async () => true),
).toBeTruthy();
await initializer.initializeIfNecessary('foo');
expect(initializer.isInitialized('foo')).toBeTruthy();
});
@@ -26,12 +23,8 @@ describe('Initializer', () => {
const initializer = new Initializer();
expect(initializer.isInitialized('foo')).toBeFalsy();
expect(
await initializer.initializeIfNecessary('foo', async () => true),
).toBeTruthy();
expect(
await initializer.initializeIfNecessary('foo', async () => true),
).toBeTruthy();
await initializer.initializeIfNecessary('foo', async () => {});
await initializer.initializeIfNecessary('foo', async () => {});
expect(initializer.isInitialized('foo')).toBeTruthy();
});
@@ -39,9 +32,11 @@ describe('Initializer', () => {
const initializer = new Initializer();
expect(initializer.isInitialized('foo')).toBeFalsy();
expect(
await initializer.initializeIfNecessary('foo', async () => false),
).toBeFalsy();
await expect(
initializer.initializeIfNecessary('foo', async () => {
throw new Error('test');
}),
).rejects.toThrow('test');
expect(initializer.isInitialized('foo')).toBeFalsy();
});
@@ -49,20 +44,20 @@ describe('Initializer', () => {
const initializer = new Initializer();
expect(initializer.isInitializedMultiple(['foo', 'bar'])).toBeFalsy();
expect(
await initializer.initializeMultipleIfNecessary({
foo: async () => true,
bar: async () => false,
await expect(
initializer.initializeMultipleIfNecessary({
foo: async () => {},
bar: async () => {
throw new Error('test');
},
}),
).toBeFalsy();
).rejects.toThrow('test');
expect(initializer.isInitializedMultiple(['foo', 'bar'])).toBeFalsy();
expect(
await initializer.initializeMultipleIfNecessary({
bar: async () => true,
}),
).toBeTruthy();
await initializer.initializeMultipleIfNecessary({
bar: async () => {},
});
expect(initializer.isInitializedMultiple(['foo', 'bar'])).toBeTruthy();
});