Skip to content

Commit dfcee8f

Browse files
committed
enumerations: convert enum into string literal object, add async request type, update references
1 parent cfe8691 commit dfcee8f

File tree

6 files changed

+139
-124
lines changed

6 files changed

+139
-124
lines changed

src/__tests__/createAsyncRenderer.test.tsx

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
// Copyright 2022 MFB Technologies, Inc.
22

33
import { createAsyncRenderer } from "../createAsyncRenderer"
4-
import { AsyncRequestStatus } from "../enumerations"
4+
import { AsyncRequestStatusEnum } from "../enumerations"
55

66
const onCompletedWithErrorSpy = jest.fn()
77
const onCompletedSuccessfullySpy = jest.fn()
@@ -14,7 +14,7 @@ beforeEach(() => {
1414

1515
it("renders onCompletedSuccessfully when the operation has been completed", () => {
1616
const render = createAsyncRenderer({
17-
status: AsyncRequestStatus.FULFILLED,
17+
status: AsyncRequestStatusEnum.FULFILLED,
1818
error: null
1919
})
2020

@@ -26,7 +26,7 @@ it("renders onCompletedSuccessfully when the operation has been completed", () =
2626
it("renders onCompletedSuccessfully with the args passed to the hook", () => {
2727
const expectedData = { myTestData: "foo" }
2828
const render = createAsyncRenderer({
29-
status: AsyncRequestStatus.FULFILLED,
29+
status: AsyncRequestStatusEnum.FULFILLED,
3030
error: null,
3131
onCompletedSuccessfullyArgs: expectedData
3232
})
@@ -41,7 +41,7 @@ it("renders onCompletedSuccessfully with the args passed to the hook", () => {
4141
it("renders onCompletedWithError when the operation has completed with an error", () => {
4242
const errorMessageMock = "foo"
4343
const render = createAsyncRenderer({
44-
status: AsyncRequestStatus.ERROR,
44+
status: AsyncRequestStatusEnum.ERROR,
4545
error: errorMessageMock
4646
})
4747

@@ -58,7 +58,7 @@ it("renders onCompletedWithError when the operation has completed with an error"
5858
it("renders onCompletedWithError when the on completed successfully args are null", () => {
5959
const onCompletedSuccessfullyArgs: any = null
6060
const render = createAsyncRenderer({
61-
status: AsyncRequestStatus.FULFILLED,
61+
status: AsyncRequestStatusEnum.FULFILLED,
6262
error: null,
6363
onCompletedSuccessfullyArgs
6464
})
@@ -74,7 +74,7 @@ it("renders onCompletedWithError when the on completed successfully args are nul
7474
it("renders onCompletedWithError when the on completed successfully args are undefined", () => {
7575
const onCompletedSuccessfullyArgs: any = undefined
7676
const render = createAsyncRenderer({
77-
status: AsyncRequestStatus.FULFILLED,
77+
status: AsyncRequestStatusEnum.FULFILLED,
7878
error: null,
7979
onCompletedSuccessfullyArgs
8080
})
@@ -90,7 +90,7 @@ it("renders onCompletedWithError when the on completed successfully args are und
9090
it("can render a generic error component if onCompletedWithError is not specified", () => {
9191
const errorMessageMock = "foo"
9292
const render = createAsyncRenderer({
93-
status: AsyncRequestStatus.ERROR,
93+
status: AsyncRequestStatusEnum.ERROR,
9494
error: errorMessageMock
9595
})
9696

@@ -101,7 +101,7 @@ it("can render a generic error component if onCompletedWithError is not specifie
101101

102102
it("renders onLoading when the operation is pending", () => {
103103
const render = createAsyncRenderer({
104-
status: AsyncRequestStatus.PENDING,
104+
status: AsyncRequestStatusEnum.PENDING,
105105
error: null
106106
})
107107

@@ -114,7 +114,7 @@ it("renders onLoading when the operation is pending", () => {
114114

115115
it("can render a generic loading component if onLoading is not specified", () => {
116116
const render = createAsyncRenderer({
117-
status: AsyncRequestStatus.PENDING,
117+
status: AsyncRequestStatusEnum.PENDING,
118118
error: null
119119
})
120120

@@ -125,7 +125,7 @@ it("can render a generic loading component if onLoading is not specified", () =>
125125

126126
it("renders onInit when the operation has been initialized", () => {
127127
const render = createAsyncRenderer({
128-
status: AsyncRequestStatus.INIT,
128+
status: AsyncRequestStatusEnum.INIT,
129129
error: null
130130
})
131131

@@ -138,7 +138,7 @@ it("renders onInit when the operation has been initialized", () => {
138138

139139
it("can render a generic loading component if onInit is not specified", () => {
140140
const render = createAsyncRenderer({
141-
status: AsyncRequestStatus.INIT,
141+
status: AsyncRequestStatusEnum.INIT,
142142
error: null
143143
})
144144

src/__tests__/utils.test.ts

Lines changed: 61 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,27 @@
11
// Copyright 2022 MFB Technologies, Inc.
22

33
import { getOptimisticAsyncLoadState } from ".."
4-
import { AsyncRequestStatus } from "../enumerations"
4+
import { AsyncRequestStatus, AsyncRequestStatusEnum } from "../enumerations"
55
import { getCascadedAsyncState, rtkqResultsToStatusError } from "../utils"
66

77
describe(`${rtkqResultsToStatusError.name}`, () => {
88
it.each([
9-
[[{ isLoading: true }, { isLoading: true }], AsyncRequestStatus.PENDING],
10-
[[{ isSuccess: true }, { isLoading: true }], AsyncRequestStatus.PENDING],
11-
[[{ isError: true }, { isError: true }], AsyncRequestStatus.ERROR],
12-
[[{ isError: true }, { isLoading: true }], AsyncRequestStatus.ERROR],
13-
[[{ isError: true }, { isSuccess: true }], AsyncRequestStatus.ERROR],
14-
[[{ isSuccess: true }, { isSuccess: true }], AsyncRequestStatus.FULFILLED],
15-
[[{}, {}], AsyncRequestStatus.INIT]
9+
[
10+
[{ isLoading: true }, { isLoading: true }],
11+
AsyncRequestStatusEnum.PENDING
12+
],
13+
[
14+
[{ isSuccess: true }, { isLoading: true }],
15+
AsyncRequestStatusEnum.PENDING
16+
],
17+
[[{ isError: true }, { isError: true }], AsyncRequestStatusEnum.ERROR],
18+
[[{ isError: true }, { isLoading: true }], AsyncRequestStatusEnum.ERROR],
19+
[[{ isError: true }, { isSuccess: true }], AsyncRequestStatusEnum.ERROR],
20+
[
21+
[{ isSuccess: true }, { isSuccess: true }],
22+
AsyncRequestStatusEnum.FULFILLED
23+
],
24+
[[{}, {}], AsyncRequestStatusEnum.INIT]
1625
])("correctly converts %s to %s", (results, expectedStatus) => {
1726
expect(rtkqResultsToStatusError(results).status).toEqual(expectedStatus)
1827
})
@@ -27,12 +36,12 @@ it("converts all errors to a single string", () => {
2736
describe(getCascadedAsyncState.name, () => {
2837
it("returns the first async state if it is not fulfilled", () => {
2938
const asyncStates = [
30-
{ status: AsyncRequestStatus.PENDING, error: null },
31-
{ status: AsyncRequestStatus.INIT, error: null },
32-
{ status: AsyncRequestStatus.INIT, error: null }
39+
{ status: AsyncRequestStatusEnum.PENDING, error: null },
40+
{ status: AsyncRequestStatusEnum.INIT, error: null },
41+
{ status: AsyncRequestStatusEnum.INIT, error: null }
3342
]
3443
const expectedState = {
35-
status: AsyncRequestStatus.PENDING,
44+
status: AsyncRequestStatusEnum.PENDING,
3645
error: null
3746
}
3847

@@ -43,12 +52,12 @@ describe(getCascadedAsyncState.name, () => {
4352

4453
it("returns the first async state as an init state if it is init", () => {
4554
const asyncStates = [
46-
{ status: AsyncRequestStatus.INIT, error: null },
47-
{ status: AsyncRequestStatus.INIT, error: null },
48-
{ status: AsyncRequestStatus.INIT, error: null }
55+
{ status: AsyncRequestStatusEnum.INIT, error: null },
56+
{ status: AsyncRequestStatusEnum.INIT, error: null },
57+
{ status: AsyncRequestStatusEnum.INIT, error: null }
4958
]
5059
const expectedState = {
51-
status: AsyncRequestStatus.INIT,
60+
status: AsyncRequestStatusEnum.INIT,
5261
error: null
5362
}
5463

@@ -59,12 +68,12 @@ describe(getCascadedAsyncState.name, () => {
5968

6069
it("returns the next async state if the previous async state is fulfilled", () => {
6170
const asyncStates = [
62-
{ status: AsyncRequestStatus.FULFILLED, error: null },
63-
{ status: AsyncRequestStatus.PENDING, error: null },
64-
{ status: AsyncRequestStatus.INIT, error: null }
71+
{ status: AsyncRequestStatusEnum.FULFILLED, error: null },
72+
{ status: AsyncRequestStatusEnum.PENDING, error: null },
73+
{ status: AsyncRequestStatusEnum.INIT, error: null }
6574
]
6675
const expectedState = {
67-
status: AsyncRequestStatus.PENDING,
76+
status: AsyncRequestStatusEnum.PENDING,
6877
error: null
6978
}
7079

@@ -75,12 +84,12 @@ describe(getCascadedAsyncState.name, () => {
7584

7685
it("returns the next async state as pending if it has a init status", () => {
7786
const asyncStates = [
78-
{ status: AsyncRequestStatus.FULFILLED, error: null },
79-
{ status: AsyncRequestStatus.INIT, error: null },
80-
{ status: AsyncRequestStatus.INIT, error: null }
87+
{ status: AsyncRequestStatusEnum.FULFILLED, error: null },
88+
{ status: AsyncRequestStatusEnum.INIT, error: null },
89+
{ status: AsyncRequestStatusEnum.INIT, error: null }
8190
]
8291
const expectedState = {
83-
status: AsyncRequestStatus.PENDING,
92+
status: AsyncRequestStatusEnum.PENDING,
8493
error: null
8594
}
8695

@@ -91,12 +100,12 @@ describe(getCascadedAsyncState.name, () => {
91100

92101
it("returns a fulfilled async state if all of the async states are fulfilled", () => {
93102
const asyncStates = [
94-
{ status: AsyncRequestStatus.FULFILLED, error: null },
95-
{ status: AsyncRequestStatus.FULFILLED, error: null },
96-
{ status: AsyncRequestStatus.FULFILLED, error: null }
103+
{ status: AsyncRequestStatusEnum.FULFILLED, error: null },
104+
{ status: AsyncRequestStatusEnum.FULFILLED, error: null },
105+
{ status: AsyncRequestStatusEnum.FULFILLED, error: null }
97106
]
98107
const expectedState = {
99-
status: AsyncRequestStatus.FULFILLED,
108+
status: AsyncRequestStatusEnum.FULFILLED,
100109
error: null
101110
}
102111

@@ -108,12 +117,12 @@ describe(getCascadedAsyncState.name, () => {
108117
it("does not return the next async state if the previous async state is error", () => {
109118
const expectedError = "some error"
110119
const asyncStates = [
111-
{ status: AsyncRequestStatus.FULFILLED, error: null },
112-
{ status: AsyncRequestStatus.ERROR, error: expectedError },
113-
{ status: AsyncRequestStatus.INIT, error: null }
120+
{ status: AsyncRequestStatusEnum.FULFILLED, error: null },
121+
{ status: AsyncRequestStatusEnum.ERROR, error: expectedError },
122+
{ status: AsyncRequestStatusEnum.INIT, error: null }
114123
]
115124
const expectedState = {
116-
status: AsyncRequestStatus.ERROR,
125+
status: AsyncRequestStatusEnum.ERROR,
117126
error: expectedError
118127
}
119128

@@ -122,13 +131,13 @@ describe(getCascadedAsyncState.name, () => {
122131
expect(result).toEqual(expectedState)
123132
})
124133

125-
it(`returns status as ${AsyncRequestStatus.INIT} and error as null when the argument is an empty array`, () => {
134+
it(`returns status as ${AsyncRequestStatusEnum.INIT} and error as null when the argument is an empty array`, () => {
126135
const asyncStates: Array<{
127136
status: AsyncRequestStatus
128137
error: string | null
129138
}> = []
130139
const expectedState = {
131-
status: AsyncRequestStatus.INIT,
140+
status: AsyncRequestStatusEnum.INIT,
132141
error: null
133142
}
134143

@@ -152,9 +161,9 @@ describe(getOptimisticAsyncLoadState.name, () => {
152161
isLastActionLoad: true
153162
}
154163

155-
it(`return status as ${AsyncRequestStatus.FULFILLED}`, () => {
164+
it(`return status as ${AsyncRequestStatusEnum.FULFILLED}`, () => {
156165
const expectedResult: GetOptimisticAsyncLoadStateResult = {
157-
status: AsyncRequestStatus.FULFILLED,
166+
status: AsyncRequestStatusEnum.FULFILLED,
158167
error: null
159168
}
160169

@@ -165,13 +174,13 @@ describe(getOptimisticAsyncLoadState.name, () => {
165174
})
166175

167176
describe("isLoaded is false", () => {
168-
it(`return status as ${AsyncRequestStatus.INIT} if isLastActionLoad is false`, () => {
177+
it(`return status as ${AsyncRequestStatusEnum.INIT} if isLastActionLoad is false`, () => {
169178
const args: GetOptimisticAsyncLoadStateArgs = {
170179
isLoaded: false,
171180
isLastActionLoad: false
172181
}
173182
const expectedResult: GetOptimisticAsyncLoadStateResult = {
174-
status: AsyncRequestStatus.INIT,
183+
status: AsyncRequestStatusEnum.INIT,
175184
error: null
176185
}
177186

@@ -180,13 +189,13 @@ describe(getOptimisticAsyncLoadState.name, () => {
180189
expect(result).toEqual(expectedResult)
181190
})
182191

183-
it(`return status as ${AsyncRequestStatus.INIT} if isLastActionLoad is true and lastActionAsyncState is undefined`, () => {
192+
it(`return status as ${AsyncRequestStatusEnum.INIT} if isLastActionLoad is true and lastActionAsyncState is undefined`, () => {
184193
const args: GetOptimisticAsyncLoadStateArgs = {
185194
isLoaded: false,
186195
isLastActionLoad: true
187196
}
188197
const expectedResult: GetOptimisticAsyncLoadStateResult = {
189-
status: AsyncRequestStatus.INIT,
198+
status: AsyncRequestStatusEnum.INIT,
190199
error: null
191200
}
192201

@@ -195,17 +204,17 @@ describe(getOptimisticAsyncLoadState.name, () => {
195204
expect(result).toEqual(expectedResult)
196205
})
197206

198-
it(`return status as ${AsyncRequestStatus.INIT} if isLastActionLoad is true and lastActionAsyncState.status is ${AsyncRequestStatus.INIT}`, () => {
207+
it(`return status as ${AsyncRequestStatusEnum.INIT} if isLastActionLoad is true and lastActionAsyncState.status is ${AsyncRequestStatusEnum.INIT}`, () => {
199208
const args: GetOptimisticAsyncLoadStateArgs = {
200209
isLoaded: false,
201210
isLastActionLoad: true,
202211
lastActionAsyncState: {
203-
status: AsyncRequestStatus.INIT,
212+
status: AsyncRequestStatusEnum.INIT,
204213
error: null
205214
}
206215
}
207216
const expectedResult: GetOptimisticAsyncLoadStateResult = {
208-
status: AsyncRequestStatus.INIT,
217+
status: AsyncRequestStatusEnum.INIT,
209218
error: null
210219
}
211220

@@ -214,17 +223,17 @@ describe(getOptimisticAsyncLoadState.name, () => {
214223
expect(result).toEqual(expectedResult)
215224
})
216225

217-
it(`return status as ${AsyncRequestStatus.PENDING} if isLastActionLoad is true and lastActionAsyncState.status is ${AsyncRequestStatus.PENDING}`, () => {
226+
it(`return status as ${AsyncRequestStatusEnum.PENDING} if isLastActionLoad is true and lastActionAsyncState.status is ${AsyncRequestStatusEnum.PENDING}`, () => {
218227
const args: GetOptimisticAsyncLoadStateArgs = {
219228
isLoaded: false,
220229
isLastActionLoad: true,
221230
lastActionAsyncState: {
222-
status: AsyncRequestStatus.PENDING,
231+
status: AsyncRequestStatusEnum.PENDING,
223232
error: null
224233
}
225234
}
226235
const expectedResult: GetOptimisticAsyncLoadStateResult = {
227-
status: AsyncRequestStatus.PENDING,
236+
status: AsyncRequestStatusEnum.PENDING,
228237
error: null
229238
}
230239

@@ -233,17 +242,17 @@ describe(getOptimisticAsyncLoadState.name, () => {
233242
expect(result).toEqual(expectedResult)
234243
})
235244

236-
it(`return status as ${AsyncRequestStatus.FULFILLED} if isLastActionLoad is true and lastActionAsyncState.status is ${AsyncRequestStatus.FULFILLED}`, () => {
245+
it(`return status as ${AsyncRequestStatusEnum.FULFILLED} if isLastActionLoad is true and lastActionAsyncState.status is ${AsyncRequestStatusEnum.FULFILLED}`, () => {
237246
const args: GetOptimisticAsyncLoadStateArgs = {
238247
isLoaded: false,
239248
isLastActionLoad: true,
240249
lastActionAsyncState: {
241-
status: AsyncRequestStatus.FULFILLED,
250+
status: AsyncRequestStatusEnum.FULFILLED,
242251
error: null
243252
}
244253
}
245254
const expectedResult: GetOptimisticAsyncLoadStateResult = {
246-
status: AsyncRequestStatus.FULFILLED,
255+
status: AsyncRequestStatusEnum.FULFILLED,
247256
error: null
248257
}
249258

@@ -252,17 +261,17 @@ describe(getOptimisticAsyncLoadState.name, () => {
252261
expect(result).toEqual(expectedResult)
253262
})
254263

255-
it(`return status as ${AsyncRequestStatus.ERROR} if isLastActionLoad is true and lastActionAsyncState.status is ${AsyncRequestStatus.ERROR}`, () => {
264+
it(`return status as ${AsyncRequestStatusEnum.ERROR} if isLastActionLoad is true and lastActionAsyncState.status is ${AsyncRequestStatusEnum.ERROR}`, () => {
256265
const args: GetOptimisticAsyncLoadStateArgs = {
257266
isLoaded: false,
258267
isLastActionLoad: true,
259268
lastActionAsyncState: {
260-
status: AsyncRequestStatus.ERROR,
269+
status: AsyncRequestStatusEnum.ERROR,
261270
error: "some error"
262271
}
263272
}
264273
const expectedResult: GetOptimisticAsyncLoadStateResult = {
265-
status: AsyncRequestStatus.ERROR,
274+
status: AsyncRequestStatusEnum.ERROR,
266275
error: "some error"
267276
}
268277

0 commit comments

Comments
 (0)