@vlayer/react 0.1.0-nightly-20250220-cf55fc9 → 0.1.0-nightly-20250221-9b0a3d4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/interface.test.d.ts +2 -0
- package/dist/interface.test.d.ts.map +1 -0
- package/dist/interface.test.js +10 -0
- package/dist/interface.test.js.map +1 -0
- package/dist/useCallProver/useCallProver.test.d.ts +2 -0
- package/dist/useCallProver/useCallProver.test.d.ts.map +1 -0
- package/dist/useCallProver/useCallProver.test.js +97 -0
- package/dist/useCallProver/useCallProver.test.js.map +1 -0
- package/dist/useWaitForProvingResult/useWaitForProvingResult.test.d.ts +2 -0
- package/dist/useWaitForProvingResult/useWaitForProvingResult.test.d.ts.map +1 -0
- package/dist/useWaitForProvingResult/useWaitForProvingResult.test.js +57 -0
- package/dist/useWaitForProvingResult/useWaitForProvingResult.test.js.map +1 -0
- package/package.json +1 -1
- package/dist/context.test.d.ts +0 -2
- package/dist/context.test.d.ts.map +0 -1
- package/dist/context.test.js +0 -75
- package/dist/context.test.js.map +0 -1
- package/dist/useWebproof/useWebProof.test.d.ts +0 -2
- package/dist/useWebproof/useWebProof.test.d.ts.map +0 -1
- package/dist/useWebproof/useWebProof.test.js +0 -119
- package/dist/useWebproof/useWebProof.test.js.map +0 -1
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"interface.test.d.ts","sourceRoot":"","sources":["../src/interface.test.ts"],"names":[],"mappings":""}
|
@@ -0,0 +1,10 @@
|
|
1
|
+
import { describe, it, expect } from "vitest";
|
2
|
+
import * as hooks from "./index.js";
|
3
|
+
describe("interface", () => {
|
4
|
+
it("should export all must have hooks", () => {
|
5
|
+
expect(Object.keys(hooks)).toEqual(expect.arrayContaining([
|
6
|
+
"useWebProof", // counterpart of webProofProvider.getWebProof https://book.vlayer.xyz/javascript/web-proofs.html
|
7
|
+
]));
|
8
|
+
});
|
9
|
+
});
|
10
|
+
//# sourceMappingURL=interface.test.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"interface.test.js","sourceRoot":"","sources":["../src/interface.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AAEjC,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;IACzB,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;QAC3C,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAChC,MAAM,CAAC,eAAe,CAAC;YACrB,aAAa,EAAE,iGAAiG;SACjH,CAAC,CACH,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"useCallProver.test.d.ts","sourceRoot":"","sources":["../../src/useCallProver/useCallProver.test.ts"],"names":[],"mappings":""}
|
@@ -0,0 +1,97 @@
|
|
1
|
+
import { renderHook, act } from "@testing-library/react";
|
2
|
+
import { describe, test, expect, vi, beforeEach } from "vitest";
|
3
|
+
import { useCallProver, ProverStatus } from "./useCallProver.js";
|
4
|
+
const mockVlayerClient = vi.hoisted(() => ({
|
5
|
+
prove: vi.fn(),
|
6
|
+
}));
|
7
|
+
const mockChainId = 1;
|
8
|
+
const anotherChainId = 2;
|
9
|
+
describe("useCallProver", () => {
|
10
|
+
beforeEach(() => {
|
11
|
+
vi.mock("../context", () => ({
|
12
|
+
useProofContext: () => ({
|
13
|
+
vlayerClient: mockVlayerClient,
|
14
|
+
}),
|
15
|
+
}));
|
16
|
+
vi.mock("wagmi", () => ({
|
17
|
+
useChainId: () => mockChainId,
|
18
|
+
}));
|
19
|
+
mockVlayerClient.prove.mockReset();
|
20
|
+
});
|
21
|
+
test("initial state", () => {
|
22
|
+
const { result } = renderHook(() => useCallProver({
|
23
|
+
address: "0x456",
|
24
|
+
proverAbi: [],
|
25
|
+
functionName: "test",
|
26
|
+
}));
|
27
|
+
expect(result.current).toMatchObject({
|
28
|
+
status: ProverStatus.Idle,
|
29
|
+
error: null,
|
30
|
+
data: null,
|
31
|
+
isIdle: true,
|
32
|
+
isPending: false,
|
33
|
+
isReady: false,
|
34
|
+
isError: false,
|
35
|
+
});
|
36
|
+
});
|
37
|
+
test("success", async () => {
|
38
|
+
const mockHash = "0x123";
|
39
|
+
mockVlayerClient.prove.mockResolvedValueOnce({ hash: mockHash });
|
40
|
+
const { result } = renderHook(() => useCallProver({
|
41
|
+
address: "0x456",
|
42
|
+
proverAbi: [],
|
43
|
+
functionName: "test",
|
44
|
+
}));
|
45
|
+
await act(async () => {
|
46
|
+
await result.current.callProver([]);
|
47
|
+
});
|
48
|
+
expect(result.current).toMatchObject({
|
49
|
+
status: ProverStatus.Ready,
|
50
|
+
data: { hash: mockHash },
|
51
|
+
isReady: true,
|
52
|
+
error: null,
|
53
|
+
isError: false,
|
54
|
+
});
|
55
|
+
});
|
56
|
+
test("error on prove failure", async () => {
|
57
|
+
const mockError = new Error("Proving failed");
|
58
|
+
mockVlayerClient.prove.mockRejectedValueOnce(mockError);
|
59
|
+
const { result } = renderHook(() => useCallProver({
|
60
|
+
address: "0x456",
|
61
|
+
proverAbi: {},
|
62
|
+
functionName: "test",
|
63
|
+
}));
|
64
|
+
await act(async () => {
|
65
|
+
await result.current.callProver([]);
|
66
|
+
});
|
67
|
+
expect(result.current).toMatchObject({
|
68
|
+
status: ProverStatus.Error,
|
69
|
+
error: mockError,
|
70
|
+
isError: true,
|
71
|
+
});
|
72
|
+
});
|
73
|
+
test("success with another chainId", async () => {
|
74
|
+
const { result } = renderHook(() => useCallProver({
|
75
|
+
address: "0x456",
|
76
|
+
proverAbi: [],
|
77
|
+
functionName: "test",
|
78
|
+
}));
|
79
|
+
vi.mock("wagmi", () => ({
|
80
|
+
useChainId: () => anotherChainId,
|
81
|
+
}));
|
82
|
+
const proverCallArgs = {
|
83
|
+
address: "0x456",
|
84
|
+
proverAbi: [],
|
85
|
+
functionName: "test",
|
86
|
+
args: [],
|
87
|
+
};
|
88
|
+
await act(async () => {
|
89
|
+
await result.current.callProver([]);
|
90
|
+
});
|
91
|
+
expect(mockVlayerClient.prove).toHaveBeenCalledWith({
|
92
|
+
...proverCallArgs,
|
93
|
+
chainId: anotherChainId,
|
94
|
+
});
|
95
|
+
});
|
96
|
+
});
|
97
|
+
//# sourceMappingURL=useCallProver.test.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"useCallProver.test.js","sourceRoot":"","sources":["../../src/useCallProver/useCallProver.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAI9D,MAAM,gBAAgB,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACzC,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE;CACf,CAAC,CAAC,CAAC;AAEJ,MAAM,WAAW,GAAG,CAAC,CAAC;AACtB,MAAM,cAAc,GAAG,CAAC,CAAC;AAEzB,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,UAAU,CAAC,GAAG,EAAE;QACd,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,EAAE,CAAC,CAAC;YAC3B,eAAe,EAAE,GAAG,EAAE,CAAC,CAAC;gBACtB,YAAY,EAAE,gBAAgB;aAC/B,CAAC;SACH,CAAC,CAAC,CAAC;QAEJ,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;YACtB,UAAU,EAAE,GAAG,EAAE,CAAC,WAAW;SAC9B,CAAC,CAAC,CAAC;QAEJ,gBAAgB,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,eAAe,EAAE,GAAG,EAAE;QACzB,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,GAAG,EAAE,CACjC,aAAa,CAAC;YACZ,OAAO,EAAE,OAAO;YAChB,SAAS,EAAE,EAAS;YACpB,YAAY,EAAE,MAAM;SACrB,CAAC,CACH,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC;YACnC,MAAM,EAAE,YAAY,CAAC,IAAI;YACzB,KAAK,EAAE,IAAI;YACX,IAAI,EAAE,IAAI;YACV,MAAM,EAAE,IAAI;YACZ,SAAS,EAAE,KAAK;YAChB,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,KAAK;SACf,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE;QACzB,MAAM,QAAQ,GAAG,OAAO,CAAC;QACzB,gBAAgB,CAAC,KAAK,CAAC,qBAAqB,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;QAEjE,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,GAAG,EAAE,CACjC,aAAa,CAAC;YACZ,OAAO,EAAE,OAAO;YAChB,SAAS,EAAE,EAAS;YACpB,YAAY,EAAE,MAAM;SACrB,CAAC,CACH,CAAC;QAEF,MAAM,GAAG,CAAC,KAAK,IAAI,EAAE;YACnB,MAAM,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC;YACnC,MAAM,EAAE,YAAY,CAAC,KAAK;YAC1B,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACxB,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,IAAI;YACX,OAAO,EAAE,KAAK;SACf,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,wBAAwB,EAAE,KAAK,IAAI,EAAE;QACxC,MAAM,SAAS,GAAG,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAC9C,gBAAgB,CAAC,KAAK,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC;QAExD,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,GAAG,EAAE,CACjC,aAAa,CAAC;YACZ,OAAO,EAAE,OAAO;YAChB,SAAS,EAAE,EAAS;YACpB,YAAY,EAAE,MAAM;SACrB,CAAC,CACH,CAAC;QAEF,MAAM,GAAG,CAAC,KAAK,IAAI,EAAE;YACnB,MAAM,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC;YACnC,MAAM,EAAE,YAAY,CAAC,KAAK;YAC1B,KAAK,EAAE,SAAS;YAChB,OAAO,EAAE,IAAI;SACd,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,8BAA8B,EAAE,KAAK,IAAI,EAAE;QAC9C,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,GAAG,EAAE,CACjC,aAAa,CAAC;YACZ,OAAO,EAAE,OAAO;YAChB,SAAS,EAAE,EAAS;YACpB,YAAY,EAAE,MAAM;SACrB,CAAC,CACH,CAAC;QAEF,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;YACtB,UAAU,EAAE,GAAG,EAAE,CAAC,cAAc;SACjC,CAAC,CAAC,CAAC;QAEJ,MAAM,cAAc,GAA2B;YAC7C,OAAO,EAAE,OAAO;YAChB,SAAS,EAAE,EAAS;YACpB,YAAY,EAAE,MAAM;YACpB,IAAI,EAAE,EAAE;SACT,CAAC;QAEF,MAAM,GAAG,CAAC,KAAK,IAAI,EAAE;YACnB,MAAM,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,oBAAoB,CAAC;YAClD,GAAG,cAAc;YACjB,OAAO,EAAE,cAAc;SACxB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"useWaitForProvingResult.test.d.ts","sourceRoot":"","sources":["../../src/useWaitForProvingResult/useWaitForProvingResult.test.ts"],"names":[],"mappings":""}
|
@@ -0,0 +1,57 @@
|
|
1
|
+
import { renderHook, waitFor } from "@testing-library/react";
|
2
|
+
import { describe, it, expect, vi } from "vitest";
|
3
|
+
import { useWaitForProvingResult, WaitForProvingResultStatus, } from "./useWaitForProvingResult.js";
|
4
|
+
const mockResult = { success: true };
|
5
|
+
const mockError = new Error("Test error");
|
6
|
+
const mockHash = "0x123";
|
7
|
+
const mockVlayerClient = vi.hoisted(() => ({
|
8
|
+
waitForProvingResult: vi.fn().mockResolvedValue({ success: true }),
|
9
|
+
}));
|
10
|
+
vi.mock("../context", () => ({
|
11
|
+
useProofContext: () => ({
|
12
|
+
vlayerClient: mockVlayerClient,
|
13
|
+
}),
|
14
|
+
}));
|
15
|
+
describe("useWaitForProvingResult", () => {
|
16
|
+
it("should initialize properly", () => {
|
17
|
+
const { result } = renderHook(() => useWaitForProvingResult(null));
|
18
|
+
expect(result.current).toMatchObject({
|
19
|
+
status: WaitForProvingResultStatus.Idle,
|
20
|
+
isIdle: true,
|
21
|
+
error: null,
|
22
|
+
});
|
23
|
+
});
|
24
|
+
it("should handle successful proving result", async () => {
|
25
|
+
const { result } = renderHook(() => useWaitForProvingResult({ hash: "0x1234" }));
|
26
|
+
await waitFor(() => {
|
27
|
+
expect(result.current).toMatchObject({
|
28
|
+
data: mockResult,
|
29
|
+
status: WaitForProvingResultStatus.Ready,
|
30
|
+
isReady: true,
|
31
|
+
error: null,
|
32
|
+
});
|
33
|
+
});
|
34
|
+
});
|
35
|
+
it("should handle proving error", async () => {
|
36
|
+
mockVlayerClient.waitForProvingResult.mockRejectedValueOnce(mockError);
|
37
|
+
const { result } = renderHook(() => useWaitForProvingResult({ hash: mockHash }));
|
38
|
+
await waitFor(() => {
|
39
|
+
expect(result.current).toMatchObject({
|
40
|
+
status: WaitForProvingResultStatus.Error,
|
41
|
+
isError: true,
|
42
|
+
error: mockError,
|
43
|
+
});
|
44
|
+
});
|
45
|
+
});
|
46
|
+
it("should set pending status while waiting for result", async () => {
|
47
|
+
mockVlayerClient.waitForProvingResult.mockImplementation(() => new Promise((resolve) => setTimeout(() => resolve(mockResult), 100)));
|
48
|
+
const { result } = renderHook(() => useWaitForProvingResult({ hash: mockHash }));
|
49
|
+
await waitFor(() => {
|
50
|
+
expect(result.current).toMatchObject({
|
51
|
+
status: WaitForProvingResultStatus.Pending,
|
52
|
+
isPending: true,
|
53
|
+
});
|
54
|
+
});
|
55
|
+
});
|
56
|
+
});
|
57
|
+
//# sourceMappingURL=useWaitForProvingResult.test.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"useWaitForProvingResult.test.js","sourceRoot":"","sources":["../../src/useWaitForProvingResult/useWaitForProvingResult.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAClD,OAAO,EACL,uBAAuB,EACvB,0BAA0B,GAC3B,MAAM,2BAA2B,CAAC;AAInC,MAAM,UAAU,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AACrC,MAAM,SAAS,GAAG,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;AAC1C,MAAM,QAAQ,GAAG,OAAO,CAAC;AAEzB,MAAM,gBAAgB,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACzC,oBAAoB,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;CACnE,CAAC,CAAC,CAAC;AACJ,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,EAAE,CAAC,CAAC;IAC3B,eAAe,EAAE,GAAG,EAAE,CAAC,CAAC;QACtB,YAAY,EAAE,gBAAgB;KAC/B,CAAC;CACH,CAAC,CAAC,CAAC;AAEJ,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;IACvC,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;QACpC,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC,CAAC;QAEnE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC;YACnC,MAAM,EAAE,0BAA0B,CAAC,IAAI;YACvC,MAAM,EAAE,IAAI;YACZ,KAAK,EAAE,IAAI;SACZ,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;QACvD,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,GAAG,EAAE,CACjC,uBAAuB,CAAC,EAAE,IAAI,EAAE,QAAQ,EAA8B,CAAC,CACxE,CAAC;QAEF,MAAM,OAAO,CAAC,GAAG,EAAE;YACjB,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC;gBACnC,IAAI,EAAE,UAAU;gBAChB,MAAM,EAAE,0BAA0B,CAAC,KAAK;gBACxC,OAAO,EAAE,IAAI;gBACb,KAAK,EAAE,IAAI;aACZ,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,6BAA6B,EAAE,KAAK,IAAI,EAAE;QAC3C,gBAAgB,CAAC,oBAAoB,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC;QAEvE,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,GAAG,EAAE,CACjC,uBAAuB,CAAC,EAAE,IAAI,EAAE,QAAQ,EAA8B,CAAC,CACxE,CAAC;QAEF,MAAM,OAAO,CAAC,GAAG,EAAE;YACjB,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC;gBACnC,MAAM,EAAE,0BAA0B,CAAC,KAAK;gBACxC,OAAO,EAAE,IAAI;gBACb,KAAK,EAAE,SAAS;aACjB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oDAAoD,EAAE,KAAK,IAAI,EAAE;QAClE,gBAAgB,CAAC,oBAAoB,CAAC,kBAAkB,CACtD,GAAG,EAAE,CACH,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,GAAG,CAAC,CAAC,CACvE,CAAC;QAEF,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,GAAG,EAAE,CACjC,uBAAuB,CAAC,EAAE,IAAI,EAAE,QAAQ,EAA8B,CAAC,CACxE,CAAC;QACF,MAAM,OAAO,CAAC,GAAG,EAAE;YACjB,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC;gBACnC,MAAM,EAAE,0BAA0B,CAAC,OAAO;gBAC1C,SAAS,EAAE,IAAI;aAChB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/package.json
CHANGED
package/dist/context.test.d.ts
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"context.test.d.ts","sourceRoot":"","sources":["../src/context.test.tsx"],"names":[],"mappings":""}
|
package/dist/context.test.js
DELETED
@@ -1,75 +0,0 @@
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
2
|
-
import { describe, it, expect } from "vitest";
|
3
|
-
import { renderHook } from "@testing-library/react";
|
4
|
-
import { ProofProvider, useProofContext, useProverContext, useWebProofContext, } from "./context.js";
|
5
|
-
import { DEFAULT_CONFIG, DEFAULT_CONFIG_ENV } from "./defaults.js";
|
6
|
-
import { ProofEnv } from "./types.js";
|
7
|
-
describe("Context Providers and Hooks", () => {
|
8
|
-
describe("useProofContext", () => {
|
9
|
-
it("should throw error when used outside ProofProvider", () => {
|
10
|
-
expect(() => {
|
11
|
-
renderHook(() => useProofContext());
|
12
|
-
}).toThrow("useProofContext must be used within a ProofProvider");
|
13
|
-
});
|
14
|
-
it("should provide both WebProof and Prover contexts", () => {
|
15
|
-
const config = {
|
16
|
-
proverUrl: "test-prover-url",
|
17
|
-
notaryUrl: "test-notary-url",
|
18
|
-
wsProxyUrl: "test-ws-url",
|
19
|
-
};
|
20
|
-
const wrapper = ({ children }) => (_jsx(ProofProvider, { config: config, children: children }));
|
21
|
-
const { result } = renderHook(() => useProofContext(), { wrapper });
|
22
|
-
expect(result.current.webProofProvider).toBeDefined();
|
23
|
-
expect(result.current.vlayerClient).toBeDefined();
|
24
|
-
expect(result.current.config).toEqual(config);
|
25
|
-
});
|
26
|
-
it("should use default config when env is provided", () => {
|
27
|
-
const config = {
|
28
|
-
env: ProofEnv.TESTNET,
|
29
|
-
wsProxyUrl: "test-ws-url",
|
30
|
-
};
|
31
|
-
const wrapper = ({ children }) => (_jsx(ProofProvider, { config: config, children: children }));
|
32
|
-
const { result } = renderHook(() => useProofContext(), { wrapper });
|
33
|
-
expect(result.current.config).toEqual({
|
34
|
-
...DEFAULT_CONFIG[ProofEnv.TESTNET],
|
35
|
-
...{ wsProxyUrl: config.wsProxyUrl },
|
36
|
-
});
|
37
|
-
});
|
38
|
-
it("should use proper default config when env is not provided", () => {
|
39
|
-
const config = {
|
40
|
-
proverUrl: "custom-url",
|
41
|
-
};
|
42
|
-
const wrapper = ({ children }) => (_jsx(ProofProvider, { config: config, children: children }));
|
43
|
-
const { result } = renderHook(() => useProofContext(), { wrapper });
|
44
|
-
expect(result.current.config).toEqual({
|
45
|
-
...DEFAULT_CONFIG[DEFAULT_CONFIG_ENV],
|
46
|
-
...config,
|
47
|
-
});
|
48
|
-
});
|
49
|
-
});
|
50
|
-
describe("useWebProofContext", () => {
|
51
|
-
it("should throw error when used outside WebProofProvider", () => {
|
52
|
-
expect(() => {
|
53
|
-
renderHook(() => useWebProofContext());
|
54
|
-
}).toThrow("useWebProofContext must be used within a WebProofProvider");
|
55
|
-
});
|
56
|
-
it("should return webProofContext when used within Provider", () => {
|
57
|
-
const wrapper = ({ children }) => (_jsx(ProofProvider, { children: children }));
|
58
|
-
const { result } = renderHook(() => useWebProofContext(), { wrapper });
|
59
|
-
expect(result.current.webProofProvider).toBeDefined();
|
60
|
-
});
|
61
|
-
});
|
62
|
-
describe("useProverContext", () => {
|
63
|
-
it("should throw error when used outside ProverProvider", () => {
|
64
|
-
expect(() => {
|
65
|
-
renderHook(() => useProverContext());
|
66
|
-
}).toThrow("useProverContext must be used within a ProverProvider");
|
67
|
-
});
|
68
|
-
it("should return proverContext when used within Provider", () => {
|
69
|
-
const wrapper = ({ children }) => (_jsx(ProofProvider, { children: children }));
|
70
|
-
const { result } = renderHook(() => useProverContext(), { wrapper });
|
71
|
-
expect(result.current.vlayerClient).toBeDefined();
|
72
|
-
});
|
73
|
-
});
|
74
|
-
});
|
75
|
-
//# sourceMappingURL=context.test.js.map
|
package/dist/context.test.js.map
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"context.test.js","sourceRoot":"","sources":["../src/context.test.tsx"],"names":[],"mappings":"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"}
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"useWebProof.test.d.ts","sourceRoot":"","sources":["../../src/useWebproof/useWebProof.test.tsx"],"names":[],"mappings":""}
|
@@ -1,119 +0,0 @@
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
2
|
-
import { act, renderHook } from "@testing-library/react";
|
3
|
-
import { it, expect, describe, vi, beforeEach } from "vitest";
|
4
|
-
import { useWebProof } from "./useWebProof.js";
|
5
|
-
import { ProofProvider } from "../context.js";
|
6
|
-
import { MockExtensionWebProofProvider } from "./extension.mock.js";
|
7
|
-
import { WebProofRequestStatus } from "../types.js";
|
8
|
-
const mocks = vi.hoisted(() => ({
|
9
|
-
createExtensionWebProofProvider: vi.fn(),
|
10
|
-
}));
|
11
|
-
vi.mock("@vlayer/sdk/web_proof", () => ({
|
12
|
-
createExtensionWebProofProvider: mocks.createExtensionWebProofProvider,
|
13
|
-
}));
|
14
|
-
const stubWebProofRequest = {
|
15
|
-
proverCallCommitment: {
|
16
|
-
address: "0x",
|
17
|
-
proverAbi: [
|
18
|
-
{
|
19
|
-
type: "function",
|
20
|
-
name: "mint",
|
21
|
-
inputs: [],
|
22
|
-
outputs: [],
|
23
|
-
stateMutability: "nonpayable",
|
24
|
-
},
|
25
|
-
],
|
26
|
-
chainId: 1,
|
27
|
-
functionName: "mint",
|
28
|
-
commitmentArgs: [],
|
29
|
-
},
|
30
|
-
logoUrl: "http://twitterswap.com/logo.png",
|
31
|
-
steps: [],
|
32
|
-
};
|
33
|
-
describe("useWebproof", () => {
|
34
|
-
beforeEach(() => {
|
35
|
-
vi.useFakeTimers();
|
36
|
-
});
|
37
|
-
const VlayerMockContext = ({ children }) => (_jsx(ProofProvider, { children: children }));
|
38
|
-
const renderWebproofHook = () => renderHook(() => useWebProof(stubWebProofRequest), {
|
39
|
-
wrapper: VlayerMockContext,
|
40
|
-
});
|
41
|
-
const setupMockProvider = (options = {}) => {
|
42
|
-
mocks.createExtensionWebProofProvider.mockImplementation(() => new MockExtensionWebProofProvider(options));
|
43
|
-
vi.runAllTimers();
|
44
|
-
};
|
45
|
-
it("should throw error if called outside of ProofProvider", () => {
|
46
|
-
expect(() => renderHook(() => useWebProof(stubWebProofRequest))).toThrow("useProofContext must be used within a ProofProvider");
|
47
|
-
});
|
48
|
-
it("should initialize with the correct state", () => {
|
49
|
-
setupMockProvider();
|
50
|
-
const { result } = renderWebproofHook();
|
51
|
-
expect(result.current).toEqual({
|
52
|
-
webProof: null,
|
53
|
-
status: WebProofRequestStatus.idle,
|
54
|
-
isIdle: true,
|
55
|
-
isError: false,
|
56
|
-
isSuccess: false,
|
57
|
-
isPending: false,
|
58
|
-
error: null,
|
59
|
-
requestWebProof: expect.any(Function),
|
60
|
-
});
|
61
|
-
});
|
62
|
-
it("should request the web proof", () => {
|
63
|
-
const { result } = renderWebproofHook();
|
64
|
-
act(() => result.current.requestWebProof());
|
65
|
-
expect(result.current).toEqual({
|
66
|
-
webProof: null,
|
67
|
-
status: WebProofRequestStatus.pending,
|
68
|
-
isIdle: false,
|
69
|
-
isError: false,
|
70
|
-
isSuccess: false,
|
71
|
-
isPending: true,
|
72
|
-
error: null,
|
73
|
-
requestWebProof: expect.any(Function),
|
74
|
-
});
|
75
|
-
});
|
76
|
-
it("should set the web proof when the request is successful", () => {
|
77
|
-
setupMockProvider({
|
78
|
-
shouldSucceed: true,
|
79
|
-
mockProof: { mock: "proof" },
|
80
|
-
});
|
81
|
-
const { result, rerender } = renderWebproofHook();
|
82
|
-
act(() => result.current.requestWebProof());
|
83
|
-
vi.advanceTimersByTime(1000);
|
84
|
-
rerender();
|
85
|
-
expect(result.current).toMatchObject({
|
86
|
-
webProof: {
|
87
|
-
webProofJson: JSON.stringify({ presentationJson: { mock: "proof" } }),
|
88
|
-
},
|
89
|
-
status: WebProofRequestStatus.success,
|
90
|
-
isIdle: false,
|
91
|
-
isPending: false,
|
92
|
-
isError: false,
|
93
|
-
isSuccess: true,
|
94
|
-
error: null,
|
95
|
-
requestWebProof: expect.any(Function),
|
96
|
-
});
|
97
|
-
});
|
98
|
-
it("should set the error when the request fails", () => {
|
99
|
-
setupMockProvider({
|
100
|
-
shouldSucceed: false,
|
101
|
-
mockError: "Mock error occurred",
|
102
|
-
});
|
103
|
-
const { result, rerender } = renderWebproofHook();
|
104
|
-
act(() => result.current.requestWebProof());
|
105
|
-
vi.advanceTimersByTime(1000);
|
106
|
-
rerender();
|
107
|
-
expect(result.current).toEqual({
|
108
|
-
webProof: null,
|
109
|
-
status: WebProofRequestStatus.error,
|
110
|
-
isIdle: false,
|
111
|
-
isPending: false,
|
112
|
-
isError: true,
|
113
|
-
isSuccess: false,
|
114
|
-
error: new Error("Mock error occurred"),
|
115
|
-
requestWebProof: expect.any(Function),
|
116
|
-
});
|
117
|
-
});
|
118
|
-
});
|
119
|
-
//# sourceMappingURL=useWebProof.test.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"useWebProof.test.js","sourceRoot":"","sources":["../../src/useWebproof/useWebProof.test.tsx"],"names":[],"mappings":"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"}
|