3232 ->assertSet ('file ' , $ file )
3333 ->assertSuccessful ();
3434});
35+
36+ it ('transfers columnsToMap into an associative array ' , function () {
37+ $ columnsToMap = [
38+ 'name ' ,
39+ 'email ' ,
40+ 'phone ' ,
41+ ];
42+ $ model = Customer::class;
43+ $ file = __DIR__ .'./Data/customers.csv ' ;
44+
45+ livewire (ImportCsv::class, [
46+ 'model ' => $ model ,
47+ 'file ' => $ file ,
48+ 'columnsToMap ' => $ columnsToMap ,
49+ ])
50+ ->assertSet ('model ' , $ model )
51+ ->assertSet ('file ' , $ file )
52+ ->assertSet ('columnsToMap ' , [
53+ 'name ' => '' ,
54+ 'email ' => '' ,
55+ 'phone ' => '' ,
56+ ])
57+ ->assertSuccessful ();
58+ });
59+
60+ it ('maps requiredColumns property into columnsToMap required state ' , function () {
61+ $ requiredColumns = [
62+ 'name ' ,
63+ 'email ' ,
64+ 'phone ' ,
65+ ];
66+ $ model = Customer::class;
67+ $ file = __DIR__ .'./Data/customers.csv ' ;
68+
69+ livewire (ImportCsv::class, [
70+ 'model ' => $ model ,
71+ 'file ' => $ file ,
72+ 'requiredColumns ' => $ requiredColumns ,
73+ ])
74+ ->assertSet ('model ' , $ model )
75+ ->assertSet ('file ' , $ file )
76+ ->assertSet ('requiredColumns ' , [
77+ 'columnsToMap.name ' => 'required ' ,
78+ 'columnsToMap.email ' => 'required ' ,
79+ 'columnsToMap.phone ' => 'required ' ,
80+ ]);
81+ });
82+
83+ it ('maps through columnsLabels to validate attributes ' , function () {
84+ $ columnsToMap = [
85+ 'name ' , 'email ' , 'phone ' ,
86+ ];
87+
88+ $ requiredColumns = [
89+ 'name ' , 'email ' ,
90+ ];
91+
92+ $ columnLabels = [
93+ 'name ' => 'Name ' ,
94+ 'email ' => 'Email ' ,
95+ ];
96+
97+ $ model = Customer::class;
98+ $ file = __DIR__ .'./Data/customers.csv ' ;
99+
100+ livewire (ImportCsv::class, [
101+ 'model ' => $ model ,
102+ 'file ' => $ file ,
103+ 'columnsToMap ' => $ columnsToMap ,
104+ 'requiredColumns ' => $ requiredColumns ,
105+ 'columnLabels ' => $ columnLabels ,
106+ ])
107+ ->assertSet ('model ' , $ model )
108+ ->assertSet ('file ' , $ file )
109+ ->assertSet ('columnLabels ' , [
110+ 'columnsToMap.name ' => 'name ' ,
111+ 'columnsToMap.email ' => 'email ' ,
112+ ]);
113+ });
0 commit comments