@@ -28,14 +28,14 @@ public function testUserCanCreateSponsor()
2828 // TODO: currently doesn't work with Dusk
2929 //Event::fake();
3030
31- $ attrs = factory (Sponsor::class)->make ()-> toArray ();
31+ $ sponsorAttrs = factory (Sponsor::class)->make ();
3232 $ user = factory (User::class)->create ();
3333
34- $ this ->browse (function ($ browser ) use ($ attrs , $ user ) {
34+ $ this ->browse (function ($ browser ) use ($ sponsorAttrs , $ user ) {
3535 $ browser
3636 ->loginAs ($ user )
3737 ->visit (new SponsorPages \CreatePage )
38- ->fillNewSponsorForm ($ attrs )
38+ ->fillNewSponsorForm ($ sponsorAttrs )
3939 ->click ('@submitBtn ' )
4040 ->assertVisible ('.alert.alert-info ' ) // some success
4141 ;
@@ -46,13 +46,13 @@ public function testUserCanCreateSponsor()
4646
4747 $ this ->assertEquals ($ sponsor ->status , Sponsor::STATUS_PENDING );
4848
49- $ this ->assertEquals ($ sponsor ->name , $ attrs [ ' name ' ] );
50- $ this ->assertEquals ($ sponsor ->display_name , $ attrs [ ' display_name ' ] );
51- $ this ->assertEquals ($ sponsor ->address1 , $ attrs [ ' address1 ' ] );
52- $ this ->assertEquals ($ sponsor ->city , $ attrs [ ' city ' ] );
53- $ this ->assertEquals ($ sponsor ->state , $ attrs [ ' state ' ] );
54- $ this ->assertEquals ($ sponsor ->postal_code , $ attrs [ ' postal_code ' ] );
55- $ this ->assertEquals ($ sponsor ->phone , $ attrs [ ' phone ' ] );
49+ $ this ->assertEquals ($ sponsor ->name , $ sponsorAttrs -> name );
50+ $ this ->assertEquals ($ sponsor ->display_name , $ sponsorAttrs -> display_name );
51+ $ this ->assertEquals ($ sponsor ->address1 , $ sponsorAttrs -> address1 );
52+ $ this ->assertEquals ($ sponsor ->city , $ sponsorAttrs -> city );
53+ $ this ->assertEquals ($ sponsor ->state , $ sponsorAttrs -> state );
54+ $ this ->assertEquals ($ sponsor ->postal_code , $ sponsorAttrs -> postal_code );
55+ $ this ->assertEquals ($ sponsor ->phone , $ sponsorAttrs -> phone );
5656
5757 // TODO: currently doesn't work with Dusk
5858 //Event::assertDispatched('App\Events\SponsorCreated', function ($e) use ($sponsor) {
@@ -104,4 +104,59 @@ public function testShowRedirectsToDocumentList()
104104 ;
105105 });
106106 }
107+
108+ public function testSponsorOwnerCanEditSponsorSettings ()
109+ {
110+ $ user = factory (User::class)->create ();
111+ $ sponsor = FactoryHelpers::createActiveSponsorWithUser ($ user );
112+
113+ $ newSponsorData = factory (Sponsor::class)->make ();
114+
115+ $ this ->browse (function ($ browser ) use ($ user , $ sponsor , $ newSponsorData ) {
116+ $ browser
117+ ->loginAs ($ user )
118+ ->visit (new SponsorPages \EditPage ($ sponsor ))
119+ ->assertFormHasDataForSponsor ($ sponsor )
120+ ->type ('name ' , $ newSponsorData ->name )
121+ ->type ('display_name ' , $ newSponsorData ->display_name )
122+ ->type ('address1 ' , $ newSponsorData ->address1 )
123+ ->type ('city ' , $ newSponsorData ->city )
124+ ->type ('state ' , $ newSponsorData ->state )
125+ ->type ('postal_code ' , $ newSponsorData ->postal_code )
126+ ->type ('phone ' , $ newSponsorData ->phone )
127+ ->press ('@submitBtn ' )
128+ ->assertRouteIs ('sponsors.edit ' , $ sponsor )
129+ ->assertFormHasDataForSponsor ($ sponsor ->fresh ())
130+ ;
131+
132+ $ sponsor = $ sponsor ->fresh ();
133+
134+ $ this ->assertEquals ($ sponsor ->name , $ newSponsorData ->name );
135+ $ this ->assertEquals ($ sponsor ->display_name , $ newSponsorData ->display_name );
136+ $ this ->assertEquals ($ sponsor ->address1 , $ newSponsorData ->address1 );
137+ $ this ->assertEquals ($ sponsor ->city , $ newSponsorData ->city );
138+ $ this ->assertEquals ($ sponsor ->state , $ newSponsorData ->state );
139+ $ this ->assertEquals ($ sponsor ->postal_code , $ newSponsorData ->postal_code );
140+ $ this ->assertEquals ($ sponsor ->phone , $ newSponsorData ->phone );
141+ });
142+ }
143+
144+ public function testNonOwnerCantEditSponsorSettings ()
145+ {
146+ $ owner = factory (User::class)->create ();
147+ $ editor = factory (User::class)->create ();
148+
149+ $ sponsor = FactoryHelpers::createActiveSponsorWithUser ($ owner );
150+ $ sponsor ->addMember ($ editor ->id , Sponsor::ROLE_EDITOR );
151+
152+ $ this ->browse (function ($ browser ) use ($ editor , $ sponsor ) {
153+ $ browser
154+ ->loginAs ($ editor )
155+ ->visitRoute ('sponsors.documents.index ' , $ sponsor )
156+ ->assertDontSeeIn ('#content .list-group ' , trans ('messages.settings ' ))
157+ ->visitRoute ('sponsors.edit ' , $ sponsor )
158+ ->assertSee ('unauthorized ' )
159+ ;
160+ });
161+ }
107162}
0 commit comments