Skip to content

Commit 4393f6f

Browse files
update dependencies
1 parent 8c86193 commit 4393f6f

File tree

8 files changed

+3868
-2838
lines changed

8 files changed

+3868
-2838
lines changed

.github/workflows/ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,6 @@ jobs:
1212
- name: Use Node.js
1313
uses: actions/setup-node@v1
1414
with:
15-
node-version: "14.x"
15+
node-version: "24.x"
1616
- run: npm install
1717
- run: npm test

.nvmrc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
v18
1+
v24

CHANGELOG.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,16 @@
11
# CHANGELOG
22

3+
## UNRELEASED
4+
5+
- Update dependencies
6+
- @types/jest to 30.0.0
7+
- eslint to 8.57.1
8+
- jest to 30.2.0
9+
- prettier to 3.7.4
10+
- ts-jest to 29.4.6
11+
- typescript to 5.9.3
12+
- Update Node to v24
13+
314
## 1.0.1
415

516
- Update (sub-)dependencies

package-lock.json

Lines changed: 3779 additions & 2780 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -23,19 +23,19 @@
2323
"author": "Braintree",
2424
"license": "MIT",
2525
"devDependencies": {
26-
"@types/jest": "^29.5.4",
26+
"@types/jest": "^30.0.0",
2727
"@typescript-eslint/eslint-plugin": "^5.54.1",
28-
"eslint": "^8.35.0",
28+
"eslint": "^8.57.1",
2929
"eslint-config-braintree": "^6.0.0-typescript-prep-rc.2",
30-
"eslint-plugin-prettier": "^5.0.0",
31-
"jest": "^29.5.0",
32-
"prettier": "^3.0.2",
33-
"ts-jest": "^29.0.5",
34-
"typescript": "^5.1.6"
30+
"eslint-plugin-prettier": "^5.5.4",
31+
"jest": "^30.2.0",
32+
"prettier": "^3.7.4",
33+
"ts-jest": "^29.4.6",
34+
"typescript": "^5.9.3"
3535
},
3636
"jest": {
3737
"preset": "ts-jest",
3838
"testEnvironment": "node",
3939
"verbose": true
4040
}
41-
}
41+
}

src/__tests__/index.test.ts

Lines changed: 64 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,15 @@
1-
import ExtendedPromise = require("../");
1+
import ExtendedPromise from "../";
22

33
function rejectIfResolves(): Promise<unknown> {
44
return Promise.reject(new Error("should not have resolved"));
55
}
66
const fakeResolve = jest.fn().mockResolvedValue(null);
77
const fakeReject = jest.fn();
88

9-
function FakePromise(fn): void {
9+
function FakePromise(fn: (arg0: jest.Mock, arg1: jest.Mock) => void): void {
1010
fn(fakeResolve, fakeReject);
1111
}
12+
1213
FakePromise.prototype.then = jest.fn();
1314
FakePromise.prototype.catch = jest.fn();
1415
FakePromise.resolve = jest.fn();
@@ -41,7 +42,7 @@ describe("ExtendedPromise", () => {
4142
expect(promise.isRejected).toBe(false);
4243
});
4344

44-
it("updates status properties when it resolves", () => {
45+
it("updates status properties when it resolves", async () => {
4546
const promise = new ExtendedPromise();
4647

4748
return promise.resolve().then(() => {
@@ -51,7 +52,7 @@ describe("ExtendedPromise", () => {
5152
});
5253
});
5354

54-
it("updates status properties when it rejects", () => {
55+
it("updates status properties when it rejects", async () => {
5556
const promise = new ExtendedPromise();
5657

5758
return promise.reject().catch(() => {
@@ -67,14 +68,14 @@ describe("ExtendedPromise", () => {
6768

6869
const promiseWithoutCatch = new ExtendedPromise(); // eslint-disable-line @typescript-eslint/no-unused-vars
6970

70-
expect(FakePromise.prototype.catch).toBeCalledTimes(0);
71+
expect(FakePromise.prototype.catch).toHaveBeenCalledTimes(0);
7172

7273
// eslint-disable-next-line @typescript-eslint/no-unused-vars
7374
const promiseWithCatch = new ExtendedPromise({
7475
suppressUnhandledPromiseMessage: true,
7576
});
7677

77-
expect(FakePromise.prototype.catch).toBeCalledTimes(1);
78+
expect(FakePromise.prototype.catch).toHaveBeenCalledTimes(1);
7879
});
7980

8081
it("can suppress unhandled promise messages with ExtendedPromise default", () => {
@@ -84,7 +85,7 @@ describe("ExtendedPromise", () => {
8485

8586
const promise = new ExtendedPromise(); // eslint-disable-line @typescript-eslint/no-unused-vars
8687

87-
expect(FakePromise.prototype.catch).toBeCalledTimes(1);
88+
expect(FakePromise.prototype.catch).toHaveBeenCalledTimes(1);
8889

8990
delete ExtendedPromise.suppressUnhandledPromiseMessage;
9091
});
@@ -99,18 +100,18 @@ describe("ExtendedPromise", () => {
99100
suppressUnhandledPromiseMessage: false,
100101
});
101102

102-
expect(FakePromise.prototype.catch).toBeCalledTimes(0);
103+
expect(FakePromise.prototype.catch).toHaveBeenCalledTimes(0);
103104

104105
delete ExtendedPromise.suppressUnhandledPromiseMessage;
105106
});
106107

107-
it("can resolve with resolve function", () => {
108+
it("can resolve with resolve function", async () => {
108109
const promise = new ExtendedPromise();
109110
const result = { foo: "bar" };
110111

111112
promise.resolve(result);
112113

113-
return promise.then((payload) => {
114+
return promise.then((payload: { foo: string }) => {
114115
expect(payload).toBe(result);
115116
});
116117
});
@@ -122,9 +123,12 @@ describe("ExtendedPromise", () => {
122123
expect(promise.resolve(result)).toBe(promise);
123124
});
124125

125-
it("can provide an onResolve function to run before it resolves", () => {
126+
it("can provide an onResolve function to run before it resolves", async () => {
126127
const promise = new ExtendedPromise({
127-
onResolve(result): unknown {
128+
onResolve(result: {
129+
newProperty: string;
130+
changedProperty: string;
131+
}): unknown {
128132
result.newProperty = "new";
129133
result.changedProperty = "changed";
130134

@@ -137,16 +141,25 @@ describe("ExtendedPromise", () => {
137141
changedProperty: "unchanged",
138142
});
139143

140-
return promise.then((payload) => {
141-
expect(payload.unchangedProperty).toBe("unchanged");
142-
expect(payload.changedProperty).toBe("changed");
143-
expect(payload.newProperty).toBe("new");
144-
});
144+
return promise.then(
145+
(payload: {
146+
newProperty: string;
147+
changedProperty: string;
148+
unchangedProperty: string;
149+
}) => {
150+
expect(payload.unchangedProperty).toBe("unchanged");
151+
expect(payload.changedProperty).toBe("changed");
152+
expect(payload.newProperty).toBe("new");
153+
},
154+
);
145155
});
146156

147-
it("can provide an async onResolve function to run before it resolves", () => {
157+
it("can provide an async onResolve function to run before it resolves", async () => {
148158
const promise = new ExtendedPromise({
149-
onResolve(result): unknown {
159+
onResolve(result: {
160+
newProperty: string;
161+
changedProperty: string;
162+
}): unknown {
150163
result.newProperty = "new";
151164

152165
return new Promise((resolve) => {
@@ -164,11 +177,17 @@ describe("ExtendedPromise", () => {
164177
changedProperty: "unchanged",
165178
});
166179

167-
return promise.then((payload) => {
168-
expect(payload.unchangedProperty).toBe("unchanged");
169-
expect(payload.changedProperty).toBe("changed");
170-
expect(payload.newProperty).toBe("new");
171-
});
180+
return promise.then(
181+
(payload: {
182+
newProperty: string;
183+
changedProperty: string;
184+
unchangedProperty: string;
185+
}) => {
186+
expect(payload.unchangedProperty).toBe("unchanged");
187+
expect(payload.changedProperty).toBe("changed");
188+
expect(payload.newProperty).toBe("new");
189+
},
190+
);
172191
});
173192

174193
it("rejects if onResolve function rejects", () => {
@@ -178,12 +197,12 @@ describe("ExtendedPromise", () => {
178197

179198
promise.resolve({});
180199

181-
return promise.then(rejectIfResolves).catch((err) => {
200+
return promise.then(rejectIfResolves).catch((err: Error) => {
182201
expect(err.message).toBe("error");
183202
});
184203
});
185204

186-
it("uses onReject function if onResolve function rejects", () => {
205+
it("uses onReject function if onResolve function rejects", async () => {
187206
const err = new Error("resolved error");
188207
const promise = new ExtendedPromise({
189208
onResolve: jest.fn().mockRejectedValue(err),
@@ -192,7 +211,7 @@ describe("ExtendedPromise", () => {
192211

193212
promise.resolve({});
194213

195-
return promise.then((payload) => {
214+
return promise.then((payload: { didError: boolean }) => {
196215
expect(payload.didError).toBe(true);
197216
});
198217
});
@@ -203,12 +222,12 @@ describe("ExtendedPromise", () => {
203222

204223
promise.reject(error);
205224

206-
return promise.then(rejectIfResolves).catch((err) => {
225+
return promise.then(rejectIfResolves).catch((err: Error) => {
207226
expect(err).toBe(error);
208227
});
209228
});
210229

211-
it("returns itself when calling reject", () => {
230+
it("returns itself when calling reject", async () => {
212231
const promise = new ExtendedPromise();
213232

214233
expect(promise.reject(new Error("some error"))).toBe(promise);
@@ -225,7 +244,7 @@ describe("ExtendedPromise", () => {
225244

226245
promise.reject(new Error("error"));
227246

228-
return promise.then(rejectIfResolves).catch((err) => {
247+
return promise.then(rejectIfResolves).catch((err: Error) => {
229248
expect(err.message).toBe("onReject error");
230249
});
231250
});
@@ -243,19 +262,19 @@ describe("ExtendedPromise", () => {
243262

244263
promise.reject(new Error("error"));
245264

246-
return promise.then(rejectIfResolves).catch((err) => {
265+
return promise.then(rejectIfResolves).catch((err: Error) => {
247266
expect(err.message).toBe("onReject error");
248267
});
249268
});
250269

251-
it("resolves if onReject function resolves", () => {
270+
it("resolves if onReject function resolves", async () => {
252271
const promise = new ExtendedPromise({
253272
onReject: jest.fn().mockResolvedValue({ ok: "ok" }),
254273
});
255274

256275
promise.reject(new Error("error"));
257276

258-
return promise.then((result) => {
277+
return promise.then((result: { ok: string }) => {
259278
expect(result.ok).toBe("ok");
260279
expect(promise.isRejected).toBe(false);
261280
expect(promise.isResolved).toBe(true);
@@ -284,26 +303,26 @@ describe("ExtendedPromise", () => {
284303
promise.resolve("1");
285304

286305
return promise
287-
.then((result) => {
306+
.then((result: string) => {
288307
expect(result).toBe("1");
289308

290309
promise.resolve("2");
291310

292311
return promise;
293312
})
294-
.then((result) => {
313+
.then((result: string) => {
295314
expect(result).toBe("1");
296315

297316
promise.reject(new Error("foo"));
298317

299318
return promise;
300319
})
301-
.then((result) => {
320+
.then((result: string) => {
302321
expect(result).toBe("1");
303322
});
304323
});
305324

306-
it("will not update status properties when it has already rejected", () => {
325+
it("will not update status properties when it has already rejected", async () => {
307326
const promise = new ExtendedPromise();
308327

309328
promise.reject();
@@ -331,23 +350,23 @@ describe("ExtendedPromise", () => {
331350

332351
return promise
333352
.then(rejectIfResolves)
334-
.catch((result) => {
353+
.catch((result: string) => {
335354
expect(result).toBe(error);
336355

337356
promise.reject(new Error("2"));
338357

339358
return promise;
340359
})
341360
.then(rejectIfResolves)
342-
.catch((result) => {
361+
.catch((result: string) => {
343362
expect(result).toBe(error);
344363

345364
promise.resolve("3");
346365

347366
return promise;
348367
})
349368
.then(rejectIfResolves)
350-
.catch((result) => {
369+
.catch((result: string) => {
351370
expect(result).toBe(error);
352371
});
353372
});
@@ -363,13 +382,13 @@ describe("ExtendedPromise", () => {
363382
});
364383

365384
return rejectingPromise
366-
.catch((e) => {
385+
.catch((e: Error) => {
367386
expect(e).toBe(error);
368387
didError = true;
369388

370389
return resolvingPromise;
371390
})
372-
.then((val) => {
391+
.then((val: string) => {
373392
expect(didError).toBe(true);
374393
expect(val).toBe("value");
375394
});
@@ -384,7 +403,7 @@ describe("ExtendedPromise", () => {
384403
ExtendedPromise.setPromise(FakePromise as any);
385404

386405
ExtendedPromise.resolve("foo");
387-
expect(FakePromise.resolve).toBeCalledWith("foo");
406+
expect(FakePromise.resolve).toHaveBeenCalledWith("foo");
388407

389408
const promise = new ExtendedPromise();
390409

@@ -393,8 +412,8 @@ describe("ExtendedPromise", () => {
393412
setTimeout(() => {
394413
// have to do this in a setTimeout so that the mock promises
395414
// have time to resolve
396-
expect(fakeResolve).toBeCalledTimes(1);
397-
expect(fakeResolve).toBeCalledWith("value");
415+
expect(fakeResolve).toHaveBeenCalledTimes(1);
416+
expect(fakeResolve).toHaveBeenCalledWith("value");
398417

399418
done();
400419
}, 1);

src/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ const GlobalPromise = (
3333

3434
class ExtendedPromise {
3535
static Promise = GlobalPromise;
36-
static suppressUnhandledPromiseMessage: boolean;
36+
static suppressUnhandledPromiseMessage?: boolean;
3737
static defaultOnResolve(result: unknown): PromiseModel {
3838
return ExtendedPromise.Promise.resolve(result);
3939
}

0 commit comments

Comments
 (0)