From 7b8714990f76e89f7e03b37daf3e4ba4b301c5d6 Mon Sep 17 00:00:00 2001 From: Caio Costa Date: Tue, 14 Jan 2025 12:11:35 +0000 Subject: [PATCH 1/3] fix: clear onchain address when assetReceive changes --- src/components/AssetSelect.tsx | 2 ++ src/components/Reverse.tsx | 10 ++++++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/components/AssetSelect.tsx b/src/components/AssetSelect.tsx index 097d2735..ea5a1dbc 100644 --- a/src/components/AssetSelect.tsx +++ b/src/components/AssetSelect.tsx @@ -47,6 +47,8 @@ const SelectAsset = () => { setAssetSend(assetReceive()); } setAssetReceive(newAsset); + // always clear onchain address if assetChange did change + setOnchainAddress(""); } void fetchPairs().catch((err) => diff --git a/src/components/Reverse.tsx b/src/components/Reverse.tsx index 85c5cbcc..3e28b6e9 100644 --- a/src/components/Reverse.tsx +++ b/src/components/Reverse.tsx @@ -3,9 +3,15 @@ import { ImArrowDown } from "solid-icons/im"; import { useCreateContext } from "../context/Create"; const Reverse = () => { - const { assetReceive, assetSend, setAssetSend, setAssetReceive } = - useCreateContext(); + const { + assetReceive, + assetSend, + setAssetSend, + setAssetReceive, + setOnchainAddress, + } = useCreateContext(); const setDirection = () => { + setOnchainAddress(""); const sendOld = assetSend(); setAssetSend(assetReceive()); setAssetReceive(sendOld); From acd84d98323391f7daa99a2c8749631c747ce9f5 Mon Sep 17 00:00:00 2001 From: Caio Costa Date: Tue, 14 Jan 2025 12:40:14 +0000 Subject: [PATCH 2/3] test: check onchain address is cleared on direction switch --- tests/components/Reverse.spec.tsx | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/tests/components/Reverse.spec.tsx b/tests/components/Reverse.spec.tsx index fd5417f6..e312f187 100644 --- a/tests/components/Reverse.spec.tsx +++ b/tests/components/Reverse.spec.tsx @@ -1,7 +1,7 @@ import { fireEvent, render } from "@solidjs/testing-library"; import Reverse from "../../src/components/Reverse"; -import { BTC, LN } from "../../src/consts/Assets"; +import { BTC, LBTC, LN } from "../../src/consts/Assets"; import { TestComponent, contextWrapper, signals } from "../helper"; describe("Reverse", () => { @@ -28,4 +28,28 @@ describe("Reverse", () => { expect(signals.assetSend()).toEqual(LN); expect(signals.assetReceive()).toEqual(BTC); }); + + test("should clear onChainAddress on reverse", () => { + const { + container: { firstChild: flip }, + } = render( + () => ( + <> + + + + ), + { + wrapper: contextWrapper, + }, + ); + + signals.setOnchainAddress("2N17VNGbi4yUHtkD7vhrc8cpi9JGVmC8scn"); + signals.setAssetSend(LBTC); + signals.setAssetReceive(BTC); + + fireEvent.click(flip); + + expect(signals.onchainAddress()).toEqual(""); + }); }); From af44516a1dd8ac87efc28ea2abd289fd213da6a4 Mon Sep 17 00:00:00 2001 From: Caio Costa Date: Wed, 15 Jan 2025 15:08:03 +0000 Subject: [PATCH 3/3] test: check onchain address is cleared if assetReceive did change --- tests/components/AssetSelect.spec.tsx | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/tests/components/AssetSelect.spec.tsx b/tests/components/AssetSelect.spec.tsx index 34b76efd..79df9dee 100644 --- a/tests/components/AssetSelect.spec.tsx +++ b/tests/components/AssetSelect.spec.tsx @@ -157,4 +157,30 @@ describe("AssetSelect", () => { expect(signals.onchainAddress()).toEqual(address); }, ); + + test("should clear onchain address when assetReceive changes", async () => { + render( + () => ( + <> + + + + ), + { wrapper: contextWrapper }, + ); + + const initialAddress = + "el1qqgdvkht3g2puwdwxqzfrekef8anygnvs093hntsz63f42gj5m0zksfvvvsss79pv7le474snv6n2slklg7ujvth99naldh9cy"; + + signals.setOnchainAddress(initialAddress); + signals.setAssetSelect(true); + signals.setAssetSelected(Side.Receive); + signals.setAssetSend(BTC); + signals.setAssetReceive(LBTC); + + fireEvent.click(await screen.findByTestId(`select-${BTC}`)); + + expect(signals.assetReceive()).toEqual(BTC); + expect(signals.onchainAddress()).toBe(""); + }); });