From 43a116bc93363ceffdeebd4ccab989ee78e39fde Mon Sep 17 00:00:00 2001 From: Bryan Phelps Date: Thu, 27 Dec 2018 21:08:37 -0800 Subject: [PATCH 1/2] Additional useState tests --- test/HooksUseStateTest.re | 62 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) diff --git a/test/HooksUseStateTest.re b/test/HooksUseStateTest.re index 2fd154b..c56b693 100644 --- a/test/HooksUseStateTest.re +++ b/test/HooksUseStateTest.re @@ -132,6 +132,68 @@ test("useState", () => { validateStructure(rootNode, expectedStructure); }); + test("nested useState set state persists across renders", () => { + let rootNode = createRootNode(); + + let container = createContainer(rootNode); + + let event: Event.t(int) = Event.create(); + + updateContainer(container, ); + + Event.dispatch(event, 5); + + let expectedStructure: tree(primitives) = + TreeNode(Root, [TreeNode(B, [TreeLeaf(A(5))])]); + validateStructure(rootNode, expectedStructure); + + updateContainer(container, ); + + let expectedStructure: tree(primitives) = + TreeNode(Root, [TreeNode(B, [TreeLeaf(A(5))])]); + validateStructure(rootNode, expectedStructure); + }); + + test("nested useState setState for multiple components persists across renders", () => { + let rootNode = createRootNode(); + + let container = createContainer(rootNode); + + let event1: Event.t(int) = Event.create(); + let event2: Event.t(int) = Event.create(); + + updateContainer(container, + + + ); + + Event.dispatch(event1, 5); + Event.dispatch(event2, 6); + + let expectedStructure: tree(primitives) = + TreeNode(Root, [TreeNode(B, [TreeLeaf(A(5)), TreeLeaf(A(6))])]); + validateStructure(rootNode, expectedStructure); + + updateContainer(container, + + + ); + + let expectedStructure: tree(primitives) = + TreeNode(Root, [TreeNode(B, [TreeLeaf(A(5)), TreeLeaf(A(6))])]); + validateStructure(rootNode, expectedStructure); + + Event.dispatch(event1, 3); + let expectedStructure: tree(primitives) = + TreeNode(Root, [TreeNode(B, [TreeLeaf(A(3)), TreeLeaf(A(6))])]); + validateStructure(rootNode, expectedStructure); + + Event.dispatch(event2, 4); + let expectedStructure: tree(primitives) = + TreeNode(Root, [TreeNode(B, [TreeLeaf(A(3)), TreeLeaf(A(4))])]); + validateStructure(rootNode, expectedStructure); + }); + test("useState can update multiple times", () => { let rootNode = createRootNode(); let container = createContainer(rootNode); From f5cce8090964f90ab36a568fafea553b01a7721c Mon Sep 17 00:00:00 2001 From: bryphe Date: Fri, 4 Jan 2019 16:44:00 -0800 Subject: [PATCH 2/2] Formatting --- test/HooksUseStateTest.re | 43 +++++++++++++++++++++++++++------------ 1 file changed, 30 insertions(+), 13 deletions(-) diff --git a/test/HooksUseStateTest.re b/test/HooksUseStateTest.re index 6d878a8..a53309f 100644 --- a/test/HooksUseStateTest.re +++ b/test/HooksUseStateTest.re @@ -20,7 +20,10 @@ let cComponent = (~children, ()) => primitiveComponent(C, ~children); module ComponentWithState = ( val createComponent((render, ~children, ()) => render( - () => useStateExperimental(2, ((s, _setS)) => ), + () => + useStateExperimental(2, ((s, _setS)) => + + ), ~children, ) ) @@ -131,7 +134,10 @@ test("useState", () => { let event: Event.t(int) = Event.create(); - updateContainer(container, ); + updateContainer( + container, + , + ); Event.dispatch(event, 5); @@ -139,14 +145,19 @@ test("useState", () => { TreeNode(Root, [TreeNode(B, [TreeLeaf(A(5))])]); validateStructure(rootNode, expectedStructure); - updateContainer(container, ); + updateContainer( + container, + , + ); let expectedStructure: tree(primitives) = TreeNode(Root, [TreeNode(B, [TreeLeaf(A(5))])]); validateStructure(rootNode, expectedStructure); }); - test("nested useState setState for multiple components persists across renders", () => { + test( + "nested useState setState for multiple components persists across renders", + () => { let rootNode = createRootNode(); let container = createContainer(rootNode); @@ -154,10 +165,13 @@ test("useState", () => { let event1: Event.t(int) = Event.create(); let event2: Event.t(int) = Event.create(); - updateContainer(container, - - - ); + updateContainer( + container, + + + + , + ); Event.dispatch(event1, 5); Event.dispatch(event2, 6); @@ -166,10 +180,13 @@ test("useState", () => { TreeNode(Root, [TreeNode(B, [TreeLeaf(A(5)), TreeLeaf(A(6))])]); validateStructure(rootNode, expectedStructure); - updateContainer(container, - - - ); + updateContainer( + container, + + + + , + ); let expectedStructure: tree(primitives) = TreeNode(Root, [TreeNode(B, [TreeLeaf(A(5)), TreeLeaf(A(6))])]); @@ -316,4 +333,4 @@ test("useState", () => { TreeNode(Root, [TreeLeaf(A(5))]); validateStructure(rootNode, expectedStructure); }); -}); \ No newline at end of file +});