CityTest.php
2.37 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
<?php
namespace Tests\Browser;
use Illuminate\Foundation\Testing\WithFaker;
use Tests\Browser\Login\LoginAsAdmin;
use Tests\Browser\Pages\City\CreatePage;
use Tests\Browser\Pages\City\DetailPage;
use Tests\Browser\Pages\City\ListingPage;
use Tests\Browser\Pages\City\UpdatePage;
use Tests\DuskTestCase;
use Laravel\Dusk\Browser;
class CityTest extends DuskTestCase
{
use LoginAsAdmin, WithFaker;
/**
* Test city flow.
*
* @return void
*
* @throws \Throwable
*/
public function testFlowForCityPages()
{
$this->browse(function (Browser $browser) {
$country = 45; // Brasil
$state = 'SC'; // Santa Catarina
$cityName = $this->faker->city;
$cityNameAfterUpdate = $this->faker->city;
$browser->login();
$browser->visit(new ListingPage())
->press(' Novo ');
$browser->on(new CreatePage())
->select('@select-country', $country)
->waitUsing(10, 1000, function () use ($browser) {
return $browser->resolver->findOrFail('[name=sigla_uf]')->isEnabled();
})
->select('@select-state', $state)
->type('@input-name', $cityName)
->press('@button-save');
$browser->on(new ListingPage())
->type('@input-name', $cityName)
->press('Buscar');
$browser->on(new ListingPage());
$cityId = $browser->resolver->findByText($cityName, 'a')->getAttribute('data-id');
$browser->clickLink($cityName);
$browser->on(new DetailPage($cityId))
->press(' Editar ');
$browser->on(new UpdatePage($cityId))
->type('@input-name', $cityNameAfterUpdate)
->press('@button-save');
$browser->on(new ListingPage())
->type('@input-name', $cityNameAfterUpdate)
->press('Buscar')
->clickLink($cityNameAfterUpdate);
$browser->on(new DetailPage($cityId));
});
}
/**
* Test city listing.
*
* @return void
*
* @throws \Throwable
*/
public function testCityListing()
{
$this->browse(function (Browser $browser) {
$browser->login();
$browser->visit(new ListingPage());
});
}
}