Skip to content

Commit c13017b

Browse files
committed
Test for conditions on 4 deep array
Added a 4th level to the nested array to confirm arrayIndices work
1 parent e1383aa commit c13017b

File tree

1 file changed

+51
-9
lines changed

1 file changed

+51
-9
lines changed

test/directives/schema-form-test.js

Lines changed: 51 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2564,7 +2564,17 @@ describe('directive',function(){
25642564
"ownerName": ""
25652565
},
25662566
{
2567-
"ownerName": "Ben"
2567+
"ownerName": "Arlo",
2568+
"logBookProvided": "yes",
2569+
"logBookEntry": [
2570+
{
2571+
"entryId": 2,
2572+
"entryDate": "2015-06-23"
2573+
},
2574+
{
2575+
"entryId": 4
2576+
}
2577+
]
25682578
}
25692579
]
25702580
}
@@ -2625,7 +2635,18 @@ describe('directive',function(){
26252635
properties: {
26262636
ownerName: { type: "string" },
26272637
purchaseDate: { type: "string" },
2628-
logBookProvided: { type: "string", enum: ["yes", "no"] }
2638+
logBookProvided: { type: "string", enum: ["yes", "no"] },
2639+
logBookEntry: {
2640+
type: "array",
2641+
items: {
2642+
type: "object",
2643+
properties: {
2644+
entryId: { type: "number" },
2645+
entryDate: { type: "string" },
2646+
entryNote: { type: "string" }
2647+
}
2648+
}
2649+
}
26292650
}
26302651
}
26312652
}
@@ -2671,7 +2692,19 @@ describe('directive',function(){
26712692
{
26722693
key: "transportCategory[].transportOption[].history.previousOwners[].logBookProvided",
26732694
condition: "model.transportCategory[arrayIndices[0]].mode != 'Horse' && model.transportCategory[arrayIndices[0]].transportOption[arrayIndices[1]].history.previousOwners[arrayIndices[2]].ownerName.length > 2"
2674-
}
2695+
},
2696+
{
2697+
key: "transportCategory[].transportOption[].history.previousOwners[].logBookEntry",
2698+
condition: "model.transportCategory[arrayIndices[0]].transportOption[arrayIndices[1]].history.previousOwners[arrayIndices[2]].logBookProvided == 'yes'",
2699+
items: [
2700+
"transportCategory[].transportOption[].history.previousOwners[].logBookEntry[].entryId",
2701+
"transportCategory[].transportOption[].history.previousOwners[].logBookEntry[].entryDate",
2702+
{
2703+
key: "transportCategory[].transportOption[].history.previousOwners[].logBookEntry[].entryNote",
2704+
condition: "model.transportCategory[arrayIndices[0]].transportOption[arrayIndices[1]].history.previousOwners[arrayIndices[2]].logBookEntry[arrayIndices[3]].entryDate.length > 2"
2705+
}
2706+
]
2707+
}
26752708
]
26762709
}
26772710
]
@@ -2710,10 +2743,15 @@ describe('directive',function(){
27102743

27112744
renderedForm.transportCategory[0].transportOption[1]['history'] = {
27122745
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)
2746+
{ node: renderedForm.transportCategory[0].transportOption[1].node.children().eq(5).children().eq(0) },
2747+
{ node: renderedForm.transportCategory[0].transportOption[1].node.children().eq(5).children().eq(1) }
27152748
]
27162749
};
2750+
2751+
renderedForm.transportCategory[0].transportOption[1].history.previousOwners[1]['logBookEntry'] = [
2752+
{ node: renderedForm.transportCategory[0].transportOption[1].history.previousOwners[1].node.children().eq(1).children().eq(4).children().eq(1).children().eq(0) },
2753+
{ node: renderedForm.transportCategory[0].transportOption[1].history.previousOwners[1].node.children().eq(1).children().eq(4).children().eq(1).children().eq(1) }
2754+
];
27172755

27182756
/*** transportCategory[].transportOption[].numberOfWheels condition tests ***/
27192757
renderedForm.transportCategory[0].node.find('input[name="numberOfWheels"]').length.should.be.eq(2);
@@ -2739,21 +2777,25 @@ describe('directive',function(){
27392777
/*** transportCategory[].transportOption[].history.previousOwners[].purchaseDate field condition tests ***/
27402778
renderedForm.transportCategory[0].transportOption[0].node.find('input[name="purchaseDate"]').length.should.be.eq(0);
27412779
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);
2780+
renderedForm.transportCategory[0].transportOption[1].history.previousOwners[0].node.find('input[name="purchaseDate"]').length.should.be.eq(0);
2781+
renderedForm.transportCategory[0].transportOption[1].history.previousOwners[1].node.find('input[name="purchaseDate"]').length.should.be.eq(1);
27442782

27452783
renderedForm.transportCategory[1].transportOption[0].node.find('input[name="purchaseDate"]').length.should.be.eq(0);
27462784
renderedForm.transportCategory[1].transportOption[1].node.find('input[name="purchaseDate"]').length.should.be.eq(1);
27472785

27482786
/*** transportCategory[].transportOption[].history.previousOwners[].logBookProvided field condition tests ***/
27492787
renderedForm.transportCategory[0].transportOption[0].node.find('select[name="logBookProvided"]').length.should.be.eq(0);
27502788
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);
2789+
renderedForm.transportCategory[0].transportOption[1].history.previousOwners[0].node.find('select[name="logBookProvided"]').length.should.be.eq(0);
2790+
renderedForm.transportCategory[0].transportOption[1].history.previousOwners[1].node.find('select[name="logBookProvided"]').length.should.be.eq(1);
27532791

27542792
renderedForm.transportCategory[1].transportOption[0].node.find('select[name="logBookProvided"]').length.should.be.eq(0);
27552793
renderedForm.transportCategory[1].transportOption[1].node.find('select[name="logBookProvided"]').length.should.be.eq(0);
27562794

2795+
/*** transportCategory[].transportOption[].history.previousOwners[].logBookEntry[].entryNote field condition tests ***/
2796+
renderedForm.transportCategory[0].transportOption[1].history.previousOwners[1].logBookEntry[0].node.find('input[name="entryNote"]').length.should.be.eq(1);
2797+
renderedForm.transportCategory[0].transportOption[1].history.previousOwners[1].logBookEntry[1].node.find('input[name="entryNote"]').length.should.be.eq(0);
2798+
27572799
done();
27582800
});
27592801
});

0 commit comments

Comments
 (0)