# Depositのテストシナリオ ###### tags: `テスト設計` ## コントラクト ```javascript= describe("Deposit コントラクト", () => { it("アドレスを指定して、任意の量のETHがdepositできる", () => {}); it("アドレスを指定して、任意の量のERC20がdepositできる", () => {}); it("invalidなアドレスの場合failする", () => {}); it("コントラクトウォレットからアドレスを指定して、任意の量のETHがdepositできる", () => {}); it("コントラクトウォレットからアドレスを指定して、任意の量のERC20がdepositできる", () => {}); it("ETHをDepositするとEventが発火する", () => {}); it("ERC20をDepositするとEventが発火する", () => {}); }); ``` ## オペレーター ```javascript= describe("Deposit オペレーター", () => { it("ETHのdeposit Eventを検知できる", () => {}); it("ERC20のdeposit Eventを検知できる", () => {}); describe("State Diff API", () => { it("Depositした人のDiffが返る", () => {}); it("Diffがなかった場合エラーが返る", () => {}); }); }); ``` ## ユーザー(ウォレット) ```javascript= describe("Deposit ユーザー(ウォレット)", () => { it("depositしたらstate diffを要求して自分のstateを作れる", () => {}); it("作った自分のstateをstate updateに渡してdeposit残高が確定される", () => {}); it("自分の残高が確認できる", () => {}); }); ```