From a0904a89eb7ed1884dda5122e3161a7fdd3bcbb0 Mon Sep 17 00:00:00 2001 From: Jerko J <83344666+JJ-Cro@users.noreply.github.com> Date: Thu, 24 Sep 2026 13:45:51 +0200 Subject: [PATCH] refactor(test): simplify error handling in futures write tests Extracted error validation logic into a separate function, `validateFuturesKeyPermissionException`, to improve readability and maintainability of the test cases. This change standardizes the handling of invalid key permission errors across multiple test scenarios. --- .../rest/private.futures.write.test.ts | 36 ++++++++----------- 1 file changed, 14 insertions(+), 22 deletions(-) diff --git a/test/integration/rest/private.futures.write.test.ts b/test/integration/rest/private.futures.write.test.ts index 2282ee3..1dd20ca 100644 --- a/test/integration/rest/private.futures.write.test.ts +++ b/test/integration/rest/private.futures.write.test.ts @@ -1,6 +1,16 @@ import { FuturesClient } from '../../../src/index.js'; import { getTestProxy } from '../proxy.util.js'; +function validateFuturesKeyPermissionException(e: unknown) { + const err = e as { body?: Record }; + expect(err).toBeDefined(); + expect(err.body).toBeDefined(); + // Linear-swap now returns HTTP 200 + { status: "error", err_code: 403, err_msg: null }. + // Signature is valid; the key has no trade permission. Do not require err_msg text. + expect(err.body?.status).toBe('error'); + expect(err.body?.err_code).toBe(403); +} + describe('REST PRIVATE FUTURES WRITE', () => { const account = { key: process.env.API_FUTURES_KEY, @@ -60,13 +70,8 @@ describe('REST PRIVATE FUTURES WRITE', () => { expect(res.data).toBeDefined(); } catch (e: unknown) { // Expected: invalid key permission error - const body = (e as { body?: Record })?.body; - // console.log(`err "${expect.getState().currentTestName}"`, { body, e }); - expect(body).toBeDefined(); - - const errorMsg = body?.err_msg; - expect(errorMsg).toMatch(/no permission/i); + validateFuturesKeyPermissionException(e); } }); @@ -98,16 +103,11 @@ describe('REST PRIVATE FUTURES WRITE', () => { expect(res.data).toBeDefined(); } catch (e: unknown) { // Expected: invalid key permission error - const body = (e as { body?: Record })?.body; - // console.error(`err "${expect.getState().currentTestName}"`, { // body, // e, // }); - expect(body).toBeDefined(); - - const errorMsg = body?.err_msg; - expect(errorMsg).toMatch(/no permission/i); + validateFuturesKeyPermissionException(e); } }); @@ -121,11 +121,7 @@ describe('REST PRIVATE FUTURES WRITE', () => { expect(res).toBeDefined(); } catch (e: unknown) { // Expected: order not found - validates signature - const body = (e as { body?: Record })?.body; - expect(body).toBeDefined(); - - const errorMsg = body?.err_msg; - expect(errorMsg).toMatch(/no permission/i); + validateFuturesKeyPermissionException(e); } }); @@ -139,11 +135,7 @@ describe('REST PRIVATE FUTURES WRITE', () => { expect(res).toBeDefined(); } catch (e: unknown) { // Expected: order not found - validates signature - const body = (e as { body?: Record })?.body; - expect(body).toBeDefined(); - - const errorMsg = body?.err_msg; - expect(errorMsg).toMatch(/no permission/i); + validateFuturesKeyPermissionException(e); } }); });