Skip to content

Commit 9a7ceb6

Browse files
committed
Add series tests
1 parent 3b980e8 commit 9a7ceb6

File tree

2 files changed

+54
-2
lines changed

2 files changed

+54
-2
lines changed

routes/web.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@
8383
Route::prefix('articles')->namespace('Articles')->group(function () {
8484
Route::get('authored', 'AuthoredArticles')->name('user.articles');
8585
Route::get('/', 'ArticlesController@index')->name('articles');
86-
Route::get('/create', 'ArticlesController@create')->name('articles.create');
86+
Route::get('create', 'ArticlesController@create')->name('articles.create');
8787
Route::post('/', 'ArticlesController@store')->name('articles.store');
8888
Route::get('{article}', 'ArticlesController@show')->name('articles.show');
8989
Route::get('{article}/edit', 'ArticlesController@edit')->name('articles.edit');
@@ -94,7 +94,7 @@
9494
// Series
9595
Route::prefix('series')->namespace('Articles')->group(function () {
9696
Route::get('authored', 'AuthoredSeries')->name('user.series');
97-
Route::get('/create', 'SeriesController@create')->name('series.create');
97+
Route::get('create', 'SeriesController@create')->name('series.create');
9898
Route::post('/', 'SeriesController@store')->name('series.store');
9999
Route::get('{series}/edit', 'SeriesController@edit')->name('series.edit');
100100
Route::put('{series}', 'SeriesController@update')->name('series.update');

tests/Feature/SeriesTest.php

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
namespace Tests\Feature;
44

5+
use App\Models\Article;
56
use App\Models\Series;
67
use App\Models\Tag;
78
use Illuminate\Foundation\Testing\DatabaseMigrations;
@@ -10,6 +11,57 @@ class SeriesTest extends BrowserKitTestCase
1011
{
1112
use DatabaseMigrations;
1213

14+
/** @test */
15+
public function users_can_view_their_series()
16+
{
17+
$user = $this->createUser();
18+
factory(Series::class)->create([
19+
'author_id' => $user->id(),
20+
'title' => 'My first series',
21+
'slug' => 'my-first-series',
22+
]);
23+
24+
$this->loginAs($user);
25+
26+
$this->visit('/series/authored')
27+
->see('My first series');
28+
}
29+
30+
/** @test */
31+
public function users_cannot_view_the_series_of_other_users()
32+
{
33+
$user = $this->createUser();
34+
factory(Series::class)->create([
35+
'title' => 'Another users series',
36+
'slug' => 'another-users-series',
37+
]);
38+
39+
$this->loginAs($user);
40+
41+
$this->visit('/series/authored')
42+
->dontSee('Another users series');
43+
}
44+
45+
/** @test */
46+
public function users_can_see_how_many_articles_in_a_series()
47+
{
48+
$user = $this->createUser();
49+
$series = factory(Series::class)->create([
50+
'author_id' => $user->id(),
51+
'title' => 'My first series',
52+
'slug' => 'my-first-series',
53+
]);
54+
factory(Article::class, 2)->create([
55+
'author_id' => $user->id(),
56+
'series_id' => $series->id(),
57+
]);
58+
59+
$this->loginAs($user);
60+
61+
$this->visit('/series/authored')
62+
->see('2 articles in series');
63+
}
64+
1365
/** @test */
1466
public function users_cannot_create_a_series_when_not_logged_in()
1567
{

0 commit comments

Comments
 (0)