mirror of
https://github.com/discountry/ritmex-bot.git
synced 2026-09-09 08:18:07 +00:00
37 lines
1.2 KiB
TypeScript
37 lines
1.2 KiB
TypeScript
import { describe, expect, it } from "vitest";
|
|
import { lighterOrderToAster } from "../../src/exchanges/lighter/mappers";
|
|
import type { LighterOrder } from "../../src/exchanges/lighter/types";
|
|
|
|
function createOrder(overrides: Partial<LighterOrder> = {}): LighterOrder {
|
|
return {
|
|
order_index: 1,
|
|
client_order_index: 1,
|
|
market_index: 99,
|
|
initial_base_amount: "0.1",
|
|
remaining_base_amount: "0.1",
|
|
price: "154.86",
|
|
type: "limit",
|
|
reduce_only: "No",
|
|
side: "buy",
|
|
...overrides,
|
|
} as LighterOrder;
|
|
}
|
|
|
|
describe("lighterOrderToAster", () => {
|
|
it("treats textual reduce_only flags correctly", () => {
|
|
const nonReduce = lighterOrderToAster("USDJPY", createOrder({ reduce_only: "No" }));
|
|
expect(nonReduce.reduceOnly).toBe(false);
|
|
|
|
const reduce = lighterOrderToAster("USDJPY", createOrder({ reduce_only: "Yes" }));
|
|
expect(reduce.reduceOnly).toBe(true);
|
|
});
|
|
|
|
it("uses numeric is_ask flag for side inference", () => {
|
|
const sell = lighterOrderToAster("USDJPY", createOrder({ is_ask: 1 }));
|
|
expect(sell.side).toBe("SELL");
|
|
|
|
const buy = lighterOrderToAster("USDJPY", createOrder({ is_ask: 0 }));
|
|
expect(buy.side).toBe("BUY");
|
|
});
|
|
});
|