11package difflicioustest
22
33import munit .ScalaCheckSuite
4+ import DifferAutoDerivationSpec .P1
45
56class DifferAutoDerivationSpec extends ScalaCheckSuite {
67 test(" should not compile without instance in scope" ) {
7- val result = compileErrors("""
8+ val result = compileErrors(
9+ """
810 import difflicious._
911 final case class P1(f1: String)
1012
@@ -14,35 +16,28 @@ class DifferAutoDerivationSpec extends ScalaCheckSuite {
1416 """ )
1517 assertNoDiff(
1618 result,
17- """ error:
18- |No given instance of type difflicious.Differ[P1] was found for parameter differ of method apply in object Differ
19- |
20- |The following import might fix the problem:
21- |
22- | import difflicious.generic.auto.autoDerived
23- |
19+ """ error: No given instance of type difflicious.Differ[P1] was found for parameter differ of method apply in object Differ
2420 | Differ[P1].diff(P1("a"), P1("b"))
2521 | ^
2622 |""" .stripMargin
2723 )
2824 }
2925 test(" should find auto derived instance for product" ) {
30- val result = compileErrors("""
26+ val result = compileErrors(
27+ """
3128 import difflicious._
3229 import difflicious.generic.auto.given
33-
34- final case class P1(f1: String)
3530
3631 Differ[P1].diff(P1("a"), P1("b"))
3732 """ )
3833 assertNoDiff(result, " " )
3934 }
4035 test(" should put auto derived instance back into scope" ) {
41- val result = compileErrors("""
36+ val result = compileErrors(
37+ """
4238 import difflicious._
4339 import difflicious.generic.auto.given
4440
45- final case class P1(f1: String)
4641 implicit val d: Differ[P1] = implicitly[Derived[P1]].differ
4742
4843 Differ[P1].diff(P1("a"), P1("b"))
@@ -54,11 +49,15 @@ class DifferAutoDerivationSpec extends ScalaCheckSuite {
5449 import difflicious .generic .auto ._
5550 import difflicious .generic .auto .given
5651
57- final case class P1 (f1 : String , f2 : String )
58- final case class P2 (p1 : P1 )
59- implicit val d : Differ [P1 ] = implicitly[Derived [P1 ]].differ.ignoreAt(_.f1)
52+ final case class Pi (f1 : String , f2 : String )
53+ final case class P2 (p1 : Pi )
54+ implicit val d : Differ [Pi ] = implicitly[Derived [Pi ]].differ.ignoreAt(_.f1)
6055
61- val r = Differ [P2 ].diff(P2 (P1 (" a" , " a" )), P2 (P1 (" b" , " a" )))
56+ val r = Differ [P2 ].diff(P2 (Pi (" a" , " a" )), P2 (Pi (" b" , " a" )))
6257 assertEquals(r.isOk, true )
6358 }
6459}
60+
61+ object DifferAutoDerivationSpec {
62+ final case class P1 (f1 : String )
63+ }
0 commit comments