@@ -2549,11 +2549,25 @@ describe('directive',function(){
2549
2549
{
2550
2550
"name" : "Bertie" ,
2551
2551
"forSale" : "yes" ,
2552
- "price" : 100
2552
+ "price" : 100 ,
2553
+ "history" : {
2554
+ "historyKnown" : "no"
2555
+ }
2553
2556
} ,
2554
2557
{
2555
2558
"name" : "Lightning McQueen" ,
2556
- "forSale" : "no"
2559
+ "forSale" : "no" ,
2560
+ "history" : {
2561
+ "historyKnown" : "yes" ,
2562
+ "previousOwners" : [
2563
+ {
2564
+ "ownerName" : ""
2565
+ } ,
2566
+ {
2567
+ "ownerName" : "Ben"
2568
+ }
2569
+ ]
2570
+ }
2557
2571
}
2558
2572
]
2559
2573
} ,
@@ -2567,7 +2581,15 @@ describe('directive',function(){
2567
2581
{
2568
2582
"name" : "Greyhound" ,
2569
2583
"forSale" : "yes" ,
2570
- "price" : 1000
2584
+ "price" : 1000 ,
2585
+ "history" : {
2586
+ "historyKnown" : "yes" ,
2587
+ "previousOwners" : [
2588
+ {
2589
+ "ownerName" : "Tom"
2590
+ }
2591
+ ]
2592
+ }
2571
2593
}
2572
2594
]
2573
2595
}
@@ -2591,7 +2613,24 @@ describe('directive',function(){
2591
2613
name : { type : "string" } ,
2592
2614
numberOfWheels : { type : "number" } ,
2593
2615
forSale : { type : "string" , enum : [ "yes" , "no" ] } ,
2594
- price : { type : "number" }
2616
+ price : { type : "number" } ,
2617
+ history : {
2618
+ type : "object" ,
2619
+ properties : {
2620
+ historyKnown : { type : "string" , enum : [ "yes" , "no" ] } ,
2621
+ previousOwners : {
2622
+ type : "array" ,
2623
+ items : {
2624
+ type : "object" ,
2625
+ properties : {
2626
+ ownerName : { type : "string" } ,
2627
+ purchaseDate : { type : "string" } ,
2628
+ logBookProvided : { type : "string" , enum : [ "yes" , "no" ] }
2629
+ }
2630
+ }
2631
+ }
2632
+ }
2633
+ }
2595
2634
}
2596
2635
}
2597
2636
}
@@ -2618,6 +2657,22 @@ describe('directive',function(){
2618
2657
{
2619
2658
key : "transportCategory[].transportOption[].price" ,
2620
2659
condition : "model.transportCategory[arrayIndices[0]].transportOption[arrayIndices[1]].forSale == 'yes'"
2660
+ } ,
2661
+ "transportCategory[].transportOption[].history.historyKnown" ,
2662
+ {
2663
+ key : "transportCategory[].transportOption[].history.previousOwners" ,
2664
+ condition : "model.transportCategory[arrayIndices[0]].transportOption[arrayIndices[1]].history.historyKnown == 'yes'" ,
2665
+ items : [
2666
+ "transportCategory[].transportOption[].history.previousOwners[].ownerName" ,
2667
+ {
2668
+ key : "transportCategory[].transportOption[].history.previousOwners[].purchaseDate" ,
2669
+ condition : "model.transportCategory[arrayIndices[0]].transportOption[arrayIndices[1]].history.previousOwners[arrayIndices[2]].ownerName.length > 2" ,
2670
+ } ,
2671
+ {
2672
+ key : "transportCategory[].transportOption[].history.previousOwners[].logBookProvided" ,
2673
+ condition : "model.transportCategory[arrayIndices[0]].mode != 'Horse' && model.transportCategory[arrayIndices[0]].transportOption[arrayIndices[1]].history.previousOwners[arrayIndices[2]].ownerName.length > 2"
2674
+ }
2675
+ ]
2621
2676
}
2622
2677
]
2623
2678
}
@@ -2630,29 +2685,74 @@ describe('directive',function(){
2630
2685
$compile ( tmpl ) ( scope ) ;
2631
2686
$rootScope . $apply ( ) ;
2632
2687
2633
- /*** numberOfWheels condition tests ***/
2634
- tmpl . children ( ) . eq ( 0 ) . children ( ) . eq ( 1 ) . children ( ) . eq ( 0 ) . find ( 'input[name="numberOfWheels"]' ) . length . should . be . eq ( 2 ) ;
2635
- tmpl . children ( ) . eq ( 0 ) . children ( ) . eq ( 1 ) . children ( ) . eq ( 1 ) . find ( 'input[name="numberOfWheels"]' ) . length . should . be . eq ( 0 ) ;
2636
- //numberOfWheels [0][0]
2637
- tmpl . children ( ) . eq ( 0 ) . children ( ) . eq ( 1 ) . children ( ) . eq ( 0 ) . children ( ) . eq ( 2 ) . children ( ) . eq ( 1 ) . children ( ) . eq ( 0 ) . children ( ) . eq ( 2 ) . children ( ) . eq ( 0 ) . text ( ) . should . be . equal ( 'numberOfWheels' ) ;
2638
- //numberOfWheels [0][1]
2639
- tmpl . children ( ) . eq ( 0 ) . children ( ) . eq ( 1 ) . children ( ) . eq ( 0 ) . children ( ) . eq ( 2 ) . children ( ) . eq ( 1 ) . children ( ) . eq ( 1 ) . children ( ) . eq ( 2 ) . children ( ) . eq ( 0 ) . text ( ) . should . be . equal ( 'numberOfWheels' ) ;
2640
- //numberOfWheels [1][0]
2641
- tmpl . children ( ) . eq ( 0 ) . children ( ) . eq ( 1 ) . children ( ) . eq ( 1 ) . children ( ) . eq ( 2 ) . children ( ) . eq ( 1 ) . children ( ) . eq ( 0 ) . children ( ) . eq ( 2 ) . children ( ) . eq ( 0 ) . text ( ) . should . be . equal ( 'forSale' ) ;
2642
- //numberOfWheels [1][1]
2643
- tmpl . children ( ) . eq ( 0 ) . children ( ) . eq ( 1 ) . children ( ) . eq ( 1 ) . children ( ) . eq ( 2 ) . children ( ) . eq ( 1 ) . children ( ) . eq ( 1 ) . children ( ) . eq ( 2 ) . children ( ) . eq ( 0 ) . text ( ) . should . be . equal ( 'forSale' ) ;
2644
-
2645
- /*** price field condition tests ***/
2646
- tmpl . children ( ) . eq ( 0 ) . children ( ) . eq ( 1 ) . children ( ) . find ( 'input[name="price"]' ) . length . should . be . eq ( 2 ) ;
2647
-
2648
- //price [0][0]
2649
- tmpl . children ( ) . eq ( 0 ) . children ( ) . eq ( 1 ) . children ( ) . eq ( 0 ) . children ( ) . eq ( 2 ) . children ( ) . eq ( 1 ) . children ( ) . eq ( 0 ) . find ( 'input[name="price"]' ) . length . should . be . eq ( 1 ) ;
2650
- //price [0][1]
2651
- tmpl . children ( ) . eq ( 0 ) . children ( ) . eq ( 1 ) . children ( ) . eq ( 0 ) . children ( ) . eq ( 2 ) . children ( ) . eq ( 1 ) . children ( ) . eq ( 1 ) . find ( 'input[name="price"]' ) . length . should . be . eq ( 0 ) ;
2652
- //price [1][0]
2653
- tmpl . children ( ) . eq ( 0 ) . children ( ) . eq ( 1 ) . children ( ) . eq ( 1 ) . children ( ) . eq ( 2 ) . children ( ) . eq ( 1 ) . children ( ) . eq ( 0 ) . find ( 'input[name="price"]' ) . length . should . be . eq ( 0 ) ;
2654
- //price [1][1]
2655
- tmpl . children ( ) . eq ( 0 ) . children ( ) . eq ( 1 ) . children ( ) . eq ( 1 ) . children ( ) . eq ( 2 ) . children ( ) . eq ( 1 ) . children ( ) . eq ( 1 ) . find ( 'input[name="price"]' ) . length . should . be . eq ( 1 ) ;
2688
+ //References to sections of the rendered form to make the test more readable
2689
+ var renderedForm = {
2690
+ node : tmpl . children ( ) . eq ( 0 ) . children ( ) . eq ( 1 ) ,
2691
+ transportCategory : [
2692
+ {
2693
+ node : tmpl . children ( ) . eq ( 0 ) . children ( ) . eq ( 1 ) . children ( ) . eq ( 0 ) ,
2694
+ } ,
2695
+ {
2696
+ node : tmpl . children ( ) . eq ( 0 ) . children ( ) . eq ( 1 ) . children ( ) . eq ( 1 ) ,
2697
+ }
2698
+ ]
2699
+ } ;
2700
+
2701
+ renderedForm . transportCategory [ 0 ] [ 'transportOption' ] = [
2702
+ { node : renderedForm . transportCategory [ 0 ] . node . children ( ) . eq ( 2 ) . children ( ) . eq ( 1 ) . children ( ) . eq ( 0 ) } ,
2703
+ { node : renderedForm . transportCategory [ 0 ] . node . children ( ) . eq ( 2 ) . children ( ) . eq ( 1 ) . children ( ) . eq ( 1 ) }
2704
+ ] ;
2705
+
2706
+ renderedForm . transportCategory [ 1 ] [ 'transportOption' ] = [
2707
+ { node : renderedForm . transportCategory [ 1 ] . node . children ( ) . eq ( 2 ) . children ( ) . eq ( 1 ) . children ( ) . eq ( 0 ) } ,
2708
+ { node : renderedForm . transportCategory [ 1 ] . node . children ( ) . eq ( 2 ) . children ( ) . eq ( 1 ) . children ( ) . eq ( 1 ) }
2709
+ ] ;
2710
+
2711
+ renderedForm . transportCategory [ 0 ] . transportOption [ 1 ] [ 'history' ] = {
2712
+ previousOwners : [
2713
+ renderedForm . transportCategory [ 0 ] . transportOption [ 1 ] . node . children ( ) . eq ( 5 ) . children ( ) . eq ( 0 ) ,
2714
+ renderedForm . transportCategory [ 0 ] . transportOption [ 1 ] . node . children ( ) . eq ( 5 ) . children ( ) . eq ( 1 )
2715
+ ]
2716
+ } ;
2717
+
2718
+ /*** transportCategory[].transportOption[].numberOfWheels condition tests ***/
2719
+ renderedForm . transportCategory [ 0 ] . node . find ( 'input[name="numberOfWheels"]' ) . length . should . be . eq ( 2 ) ;
2720
+ renderedForm . transportCategory [ 1 ] . node . find ( 'input[name="numberOfWheels"]' ) . length . should . be . eq ( 0 ) ;
2721
+ renderedForm . transportCategory [ 0 ] . transportOption [ 0 ] . node . find ( 'input[name="numberOfWheels"]' ) . length . should . be . eq ( 1 ) ;
2722
+ renderedForm . transportCategory [ 0 ] . transportOption [ 1 ] . node . find ( 'input[name="numberOfWheels"]' ) . length . should . be . eq ( 1 ) ;
2723
+ renderedForm . transportCategory [ 1 ] . transportOption [ 0 ] . node . find ( 'input[name="numberOfWheels"]' ) . length . should . be . eq ( 0 ) ;
2724
+ renderedForm . transportCategory [ 1 ] . transportOption [ 1 ] . node . find ( 'input[name="numberOfWheels"]' ) . length . should . be . eq ( 0 ) ;
2725
+
2726
+ /*** transportCategory[].transportOption[].price field condition tests ***/
2727
+ renderedForm . node . children ( ) . find ( 'input[name="price"]' ) . length . should . be . eq ( 2 ) ;
2728
+ renderedForm . transportCategory [ 0 ] . transportOption [ 0 ] . node . find ( 'input[name="price"]' ) . length . should . be . eq ( 1 ) ;
2729
+ renderedForm . transportCategory [ 0 ] . transportOption [ 1 ] . node . find ( 'input[name="price"]' ) . length . should . be . eq ( 0 ) ;
2730
+ renderedForm . transportCategory [ 1 ] . transportOption [ 0 ] . node . find ( 'input[name="price"]' ) . length . should . be . eq ( 0 ) ;
2731
+ renderedForm . transportCategory [ 1 ] . transportOption [ 1 ] . node . find ( 'input[name="price"]' ) . length . should . be . eq ( 1 ) ;
2732
+
2733
+ /*** transportCategory[].transportOption[].history.previousOwners.ownerName field condition tests ***/
2734
+ renderedForm . transportCategory [ 0 ] . transportOption [ 0 ] . node . find ( 'input[name="ownerName"]' ) . length . should . be . eq ( 0 ) ;
2735
+ renderedForm . transportCategory [ 0 ] . transportOption [ 1 ] . node . find ( 'input[name="ownerName"]' ) . length . should . be . eq ( 2 ) ;
2736
+ renderedForm . transportCategory [ 1 ] . transportOption [ 0 ] . node . find ( 'input[name="ownerName"]' ) . length . should . be . eq ( 0 ) ;
2737
+ renderedForm . transportCategory [ 1 ] . transportOption [ 1 ] . node . find ( 'input[name="ownerName"]' ) . length . should . be . eq ( 1 ) ;
2738
+
2739
+ /*** transportCategory[].transportOption[].history.previousOwners[].purchaseDate field condition tests ***/
2740
+ renderedForm . transportCategory [ 0 ] . transportOption [ 0 ] . node . find ( 'input[name="purchaseDate"]' ) . length . should . be . eq ( 0 ) ;
2741
+ renderedForm . transportCategory [ 0 ] . transportOption [ 1 ] . node . find ( 'input[name="purchaseDate"]' ) . length . should . be . eq ( 1 ) ;
2742
+ renderedForm . transportCategory [ 0 ] . transportOption [ 1 ] . history . previousOwners [ 0 ] . find ( 'input[name="purchaseDate"]' ) . length . should . be . eq ( 0 ) ;
2743
+ renderedForm . transportCategory [ 0 ] . transportOption [ 1 ] . history . previousOwners [ 1 ] . find ( 'input[name="purchaseDate"]' ) . length . should . be . eq ( 1 ) ;
2744
+
2745
+ renderedForm . transportCategory [ 1 ] . transportOption [ 0 ] . node . find ( 'input[name="purchaseDate"]' ) . length . should . be . eq ( 0 ) ;
2746
+ renderedForm . transportCategory [ 1 ] . transportOption [ 1 ] . node . find ( 'input[name="purchaseDate"]' ) . length . should . be . eq ( 1 ) ;
2747
+
2748
+ /*** transportCategory[].transportOption[].history.previousOwners[].logBookProvided field condition tests ***/
2749
+ renderedForm . transportCategory [ 0 ] . transportOption [ 0 ] . node . find ( 'select[name="logBookProvided"]' ) . length . should . be . eq ( 0 ) ;
2750
+ renderedForm . transportCategory [ 0 ] . transportOption [ 1 ] . node . find ( 'select[name="logBookProvided"]' ) . length . should . be . eq ( 1 ) ;
2751
+ renderedForm . transportCategory [ 0 ] . transportOption [ 1 ] . history . previousOwners [ 0 ] . find ( 'select[name="logBookProvided"]' ) . length . should . be . eq ( 0 ) ;
2752
+ renderedForm . transportCategory [ 0 ] . transportOption [ 1 ] . history . previousOwners [ 1 ] . find ( 'select[name="logBookProvided"]' ) . length . should . be . eq ( 1 ) ;
2753
+
2754
+ renderedForm . transportCategory [ 1 ] . transportOption [ 0 ] . node . find ( 'select[name="logBookProvided"]' ) . length . should . be . eq ( 0 ) ;
2755
+ renderedForm . transportCategory [ 1 ] . transportOption [ 1 ] . node . find ( 'select[name="logBookProvided"]' ) . length . should . be . eq ( 0 ) ;
2656
2756
2657
2757
done ( ) ;
2658
2758
} ) ;
0 commit comments