11package scommons .react .test .util
22
3- import io .github .shogowada .scalajs .reactjs .React
4- import io .github .shogowada .scalajs .reactjs .VirtualDOM ._
5- import io .github .shogowada .scalajs .reactjs .classes .ReactClass
6- import io .github .shogowada .scalajs .reactjs .elements .ReactElement
73import io .github .shogowada .statictags .{Attribute , AttributeSpec }
84import org .scalactic .source .Position
95import org .scalatest .exceptions .TestFailedException
106import org .scalatest .{Assertion , Failed , OutcomeOf }
11- import scommons .react .UiComponent
7+ import scommons .react ._
128import scommons .react .test .TestSpec
139import scommons .react .test .raw .RenderedInstance
1410import scommons .react .test .util .RendererUtilsSpec ._
@@ -87,10 +83,12 @@ abstract class RendererUtilsSpec[Instance <: RenderedInstance] extends TestSpec
8783
8884 it should " fail if array attribute doesn't match when assertNativeComponent" in {
8985 // given
90- val compClass = React .createClass[Unit , Unit ] { _ =>
91- < .p(^ .testArr := js.Array (" test" ))()
86+ val compClass = new FunctionComponent [Unit ] {
87+ protected def render (props : Props ): ReactElement = {
88+ < .p(^ .testArr := js.Array (" test" ))()
89+ }
9290 }
93- val comp = doRender(< (compClass)()())
91+ val comp = doRender(< (compClass() )()())
9492
9593 // when
9694 val Failed (e) = outcomeOf {
@@ -106,12 +104,14 @@ abstract class RendererUtilsSpec[Instance <: RenderedInstance] extends TestSpec
106104
107105 it should " fail if object attribute doesn't match when assertNativeComponent" in {
108106 // given
109- val compClass = React .createClass[Unit , Unit ] { _ =>
110- < .p(^ .testObj := js.Dynamic .literal(
111- test = 1
112- ))()
107+ val compClass = new FunctionComponent [Unit ] {
108+ protected def render (props : Props ): ReactElement = {
109+ < .p(^ .testObj := js.Dynamic .literal(
110+ test = 1
111+ ))()
112+ }
113113 }
114- val comp = doRender(< (compClass)()())
114+ val comp = doRender(< (compClass() )()())
115115
116116 // when
117117 val Failed (e) = outcomeOf {
@@ -129,10 +129,12 @@ abstract class RendererUtilsSpec[Instance <: RenderedInstance] extends TestSpec
129129
130130 it should " fail if boolean attribute doesn't match when assertNativeComponent" in {
131131 // given
132- val compClass = React .createClass[Unit , Unit ] { _ =>
133- < .p(^ .disabled := true )()
132+ val compClass = new FunctionComponent [Unit ] {
133+ protected def render (props : Props ): ReactElement = {
134+ < .p(^ .disabled := true )()
135+ }
134136 }
135- val comp = doRender(< (compClass)()())
137+ val comp = doRender(< (compClass() )()())
136138
137139 // when
138140 val Failed (e) = outcomeOf {
@@ -175,28 +177,30 @@ abstract class RendererUtilsSpec[Instance <: RenderedInstance] extends TestSpec
175177 it should " assert props and children when assertNativeComponent" in {
176178 // given
177179 val id = System .currentTimeMillis().toString
178- val compClass = React .createClass[Unit , Unit ] { _ =>
179- < .div(
180- ^ .className := " test1 test2" ,
181- ^ .style := Map (" display" -> " none" ),
182- ^ .id := id,
183- ^ .hidden := true ,
184- ^ .height := 10
185- )(
180+ val compClass = new FunctionComponent [Unit ] {
181+ protected def render (props : Props ): ReactElement = {
186182 < .div(
187- ^ .testArr := js.Array (" test" ),
188- ^ .testObj := js.Dynamic .literal(
189- test = 1 ,
190- nested = js.Dynamic .literal(
191- test2 = 2
183+ ^ .className := " test1 test2" ,
184+ ^ .style := Map (" display" -> " none" ),
185+ ^ .id := id,
186+ ^ .hidden := true ,
187+ ^ .height := 10
188+ )(
189+ < .div(
190+ ^ .testArr := js.Array (" test" ),
191+ ^ .testObj := js.Dynamic .literal(
192+ test = 1 ,
193+ nested = js.Dynamic .literal(
194+ test2 = 2
195+ )
192196 )
193- )
194- )( ),
195- < .div()(" child1 " ),
196- < .div()( " child2 " )
197- )
197+ )(),
198+ < .div()( " child1 " ),
199+ < .div()(" child2 " )
200+ )
201+ }
198202 }
199- val comp = doRender(< (compClass)()())
203+ val comp = doRender(< (compClass() )()())
200204
201205 // when & then
202206 assertNativeComponent(comp, < .div(
@@ -226,24 +230,28 @@ object RendererUtilsSpec {
226230 case class Comp1Props (a : Int )
227231 case class Comp2Props (b : Boolean )
228232
229- object TestComp extends UiComponent [Comp1Props ] {
230-
231- protected def create (): ReactClass = React .createClass[Comp1Props , Unit ] { self =>
232- < .p(^ .className := " test1" )(self.props.children)
233+ object TestComp extends FunctionComponent [Comp1Props ] {
234+ protected def render (props : Props ): ReactElement = {
235+ < .p(^ .className := " test1" )(props.children)
233236 }
234237 }
235238
236- val emptyComp : ReactClass = React .createClass[Comp1Props , Unit ] { _ =>
237- < .div.empty
238- }
239+ val emptyComp : ReactClass = new FunctionComponent [Comp1Props ] {
240+ protected def render (props : Props ): ReactElement = {
241+ < .div.empty
242+ }
243+ }.apply()
239244
240- val comp2Class : ReactClass = React .createClass[Comp2Props , Unit ] { _ =>
241- < .div(^ .className := " test2" )(
242- < (TestComp ())(^ .wrapped := Comp1Props (1 ))(" test2 child1" ),
243- < (TestComp ())(^ .wrapped := Comp1Props (2 ))(" test2 child2" )
244- )
245- }
245+ val comp2Class : ReactClass = new FunctionComponent [Comp2Props ] {
246+ protected def render (props : Props ): ReactElement = {
247+ < .div(^ .className := " test2" )(
248+ < (TestComp ())(^ .wrapped := Comp1Props (1 ))(" test2 child1" ),
249+ < (TestComp ())(^ .wrapped := Comp1Props (2 ))(" test2 child2" )
250+ )
251+ }
252+ }.apply()
246253
254+ import io .github .shogowada .scalajs .reactjs .VirtualDOM .VirtualDOMAttributes
247255 import VirtualDOMAttributes .Type ._
248256
249257 case class TestArrayAttributeSpec (name : String ) extends AttributeSpec {
0 commit comments