mirror of
https://github.com/wearepixel/laravel-comments.git
synced 2026-11-14 22:12:35 +00:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
584405fba7 | ||
|
|
fafec066ab | ||
|
|
9605cd8545 | ||
|
|
30d95562b0 | ||
|
|
1ae27fe5e3 | ||
|
|
7c598d62a8 | ||
|
|
d3523d9809 | ||
|
|
3ddea7ece2 | ||
|
|
fcce301be6 | ||
|
|
c652a9cfe0 | ||
|
|
e9663034fe | ||
|
|
d5a15036b8 | ||
|
|
972ff76c95 | ||
|
|
fe0e7865cb | ||
|
|
488c4076f9 | ||
|
|
cd2f65ed92 | ||
|
|
b5569cce2b | ||
|
|
584d1e5cee | ||
|
|
a49cde825e | ||
|
|
5d79013c09 | ||
|
|
f2d0b1f6b6 | ||
|
|
6ca48b89bf | ||
|
|
dd9d3c8d9f | ||
|
|
b366e1c636 | ||
|
|
b0b7f77cf7 | ||
|
|
31bfa04dcc | ||
|
|
7b5fca31b9 | ||
|
|
e7ff37cafe | ||
|
|
461094925d | ||
|
|
bf0eeb5579 | ||
|
|
f75584052f | ||
|
|
c7d599349d | ||
|
|
faeb83b7d2 | ||
|
|
e8b5b7a237 | ||
|
|
7bbc024302 |
@@ -4,3 +4,6 @@ composer.lock
|
||||
docs
|
||||
vendor
|
||||
coverage
|
||||
coverage.clover
|
||||
.phpunit.result.cache
|
||||
.phpunit.cache/
|
||||
@@ -1,19 +0,0 @@
|
||||
filter:
|
||||
excluded_paths: [tests/*]
|
||||
|
||||
checks:
|
||||
php:
|
||||
remove_extra_empty_lines: true
|
||||
remove_php_closing_tag: true
|
||||
remove_trailing_whitespace: true
|
||||
fix_use_statements:
|
||||
remove_unused: true
|
||||
preserve_multiple: false
|
||||
preserve_blanklines: true
|
||||
order_alphabetically: true
|
||||
fix_php_opening_tag: true
|
||||
fix_linefeed: true
|
||||
fix_line_ending: true
|
||||
fix_identation_4spaces: true
|
||||
fix_doc_comments: true
|
||||
|
||||
-20
@@ -1,20 +0,0 @@
|
||||
language: php
|
||||
|
||||
php:
|
||||
- 7.1
|
||||
- 7.2
|
||||
|
||||
env:
|
||||
matrix:
|
||||
- COMPOSER_FLAGS="--prefer-lowest"
|
||||
- COMPOSER_FLAGS=""
|
||||
|
||||
before_script:
|
||||
- travis_retry composer self-update
|
||||
- travis_retry composer update ${COMPOSER_FLAGS} --no-interaction --prefer-source
|
||||
|
||||
script:
|
||||
- vendor/bin/phpunit --coverage-text --coverage-clover=coverage.clover
|
||||
|
||||
after_script:
|
||||
- php vendor/bin/ocular code-coverage:upload --format=php-clover coverage.clover
|
||||
@@ -1,8 +1,6 @@
|
||||
# Add comments to your Laravel application
|
||||
|
||||
[](https://packagist.org/packages/beyondcode/laravel-comments)
|
||||
[](https://travis-ci.org/beyondcode/laravel-comments)
|
||||
[](https://scrutinizer-ci.com/g/beyondcode/laravel-comments)
|
||||
[](https://packagist.org/packages/beyondcode/laravel-comments)
|
||||
|
||||
Add the ability to associate comments to your Laravel Eloquent models. The comments can be approved and nested.
|
||||
@@ -52,8 +50,8 @@ To let your models be able to receive comments, add the `HasComments` trait to t
|
||||
```php
|
||||
namespace App\Models;
|
||||
|
||||
use Beyondcode\Comments\HasComments;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use BeyondCode\Comments\Traits\HasComments;
|
||||
|
||||
class Post extends Model
|
||||
{
|
||||
@@ -139,6 +137,24 @@ $approved = $post->comments()->approved()->get();
|
||||
|
||||
```
|
||||
|
||||
### Nesting Comments
|
||||
|
||||
`BeyondCode\Comments\Comment` itself implements the `HasComments` trait, so you can comment on a comment and therefore nest them:
|
||||
|
||||
```php
|
||||
$comment = BeyondCode\Comments\Comment::first();
|
||||
$comment->commentAsUser($user, "Hey there!");
|
||||
```
|
||||
|
||||
#### Deleting Replies
|
||||
|
||||
When you delete a comment, you may optionally want to delete all its nested comments (replies). To optionally enable this feature, set the `delete_replies_along_comments` config property in the `config/comments.php` file to `true`.
|
||||
|
||||
### Events
|
||||
|
||||
When a new comment is added the `BeyondCode\Comments\Events\CommentAdded` event will be dispatched.
|
||||
When a comment is deleted the `BeyondCode\Comments\Events\CommentDeleted` event will be dispatched.
|
||||
|
||||
### Testing
|
||||
|
||||
```bash
|
||||
|
||||
+4
-4
@@ -17,11 +17,12 @@
|
||||
}
|
||||
],
|
||||
"require": {
|
||||
"php": "^7.1"
|
||||
"php": "^8.1",
|
||||
"illuminate/support": "^10.0|^11.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"orchestra/testbench": "^3.6",
|
||||
"phpunit/phpunit": "^7.0"
|
||||
"orchestra/testbench": "^3.6|^5.0|^6.0|^7.0|^8.0",
|
||||
"phpunit/phpunit": "^9.5.8|^10.0.7"
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
@@ -36,7 +37,6 @@
|
||||
"scripts": {
|
||||
"test": "vendor/bin/phpunit",
|
||||
"test-coverage": "vendor/bin/phpunit --coverage-html coverage"
|
||||
|
||||
},
|
||||
"config": {
|
||||
"sort-packages": true
|
||||
|
||||
@@ -15,4 +15,8 @@ return [
|
||||
*/
|
||||
'user_model' => null,
|
||||
|
||||
/**
|
||||
* Determines if replies will be deleted when comments are deleted
|
||||
*/
|
||||
'delete_replies_along_comments' => false,
|
||||
];
|
||||
@@ -16,7 +16,7 @@ class CreateCommentsTable extends Migration
|
||||
$table->morphs('commentable');
|
||||
$table->text('comment');
|
||||
$table->boolean('is_approved')->default(false);
|
||||
$table->unsignedInteger('user_id')->nullable();
|
||||
$table->unsignedBigInteger('user_id')->nullable();
|
||||
$table->timestamps();
|
||||
});
|
||||
}
|
||||
|
||||
+16
-12
@@ -1,5 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<phpunit bootstrap="vendor/autoload.php"
|
||||
<phpunit
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
bootstrap="vendor/autoload.php"
|
||||
backupGlobals="false"
|
||||
backupStaticAttributes="false"
|
||||
colors="true"
|
||||
@@ -8,22 +10,24 @@
|
||||
convertNoticesToExceptions="true"
|
||||
convertWarningsToExceptions="true"
|
||||
processIsolation="false"
|
||||
stopOnFailure="false">
|
||||
stopOnFailure="false"
|
||||
xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/9.3/phpunit.xsd">
|
||||
<coverage>
|
||||
<include>
|
||||
<directory suffix=".php">src/</directory>
|
||||
</include>
|
||||
<report>
|
||||
<clover outputFile="build/logs/clover.xml" />
|
||||
<html outputDirectory="build/coverage" />
|
||||
<text outputFile="build/coverage.txt" />
|
||||
</report>
|
||||
</coverage>
|
||||
<testsuites>
|
||||
<testsuite name="BeyondCode Test Suite">
|
||||
<directory>tests</directory>
|
||||
</testsuite>
|
||||
</testsuites>
|
||||
<filter>
|
||||
<whitelist>
|
||||
<directory suffix=".php">src/</directory>
|
||||
</whitelist>
|
||||
</filter>
|
||||
<logging>
|
||||
<log type="tap" target="build/report.tap"/>
|
||||
<log type="junit" target="build/report.junit.xml"/>
|
||||
<log type="coverage-html" target="build/coverage" charset="UTF-8" yui="true" highlight="true"/>
|
||||
<log type="coverage-text" target="build/coverage.txt"/>
|
||||
<log type="coverage-clover" target="build/logs/clover.xml"/>
|
||||
<junit outputFile="build/report.junit.xml" />
|
||||
</logging>
|
||||
</phpunit>
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<phpunit
|
||||
bootstrap="vendor/autoload.php"
|
||||
backupGlobals="false"
|
||||
backupStaticAttributes="false"
|
||||
colors="true"
|
||||
verbose="true"
|
||||
convertErrorsToExceptions="true"
|
||||
convertNoticesToExceptions="true"
|
||||
convertWarningsToExceptions="true"
|
||||
processIsolation="false"
|
||||
stopOnFailure="false">
|
||||
<testsuites>
|
||||
<testsuite name="BeyondCode Test Suite">
|
||||
<directory>tests</directory>
|
||||
</testsuite>
|
||||
</testsuites>
|
||||
<filter>
|
||||
<whitelist>
|
||||
<directory suffix=".php">src/</directory>
|
||||
</whitelist>
|
||||
</filter>
|
||||
<logging>
|
||||
<log type="junit" target="build/report.junit.xml" />
|
||||
<log type="coverage-html" target="build/coverage" />
|
||||
<log type="coverage-text" target="build/coverage.txt" />
|
||||
<log type="coverage-clover" target="build/logs/clover.xml" />
|
||||
</logging>
|
||||
</phpunit>
|
||||
+33
-4
@@ -2,9 +2,11 @@
|
||||
|
||||
namespace BeyondCode\Comments;
|
||||
|
||||
use BeyondCode\Comments\Events\CommentAdded;
|
||||
use BeyondCode\Comments\Events\CommentDeleted;
|
||||
use BeyondCode\Comments\Traits\HasComments;
|
||||
use Exception;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use BeyondCode\Comments\Traits\HasComments;
|
||||
|
||||
class Comment extends Model
|
||||
{
|
||||
@@ -13,13 +15,32 @@ class Comment extends Model
|
||||
protected $fillable = [
|
||||
'comment',
|
||||
'user_id',
|
||||
'is_approved'
|
||||
'is_approved',
|
||||
];
|
||||
|
||||
protected $casts = [
|
||||
'is_approved' => 'boolean'
|
||||
'is_approved' => 'boolean',
|
||||
];
|
||||
|
||||
public static function boot(): void
|
||||
{
|
||||
parent::boot();
|
||||
|
||||
static::deleting(function (self $model) {
|
||||
if (config('comments.delete_replies_along_comments')) {
|
||||
$model->comments()->delete();
|
||||
}
|
||||
});
|
||||
|
||||
static::deleted(function (self $model) {
|
||||
CommentDeleted::dispatch($model);
|
||||
});
|
||||
|
||||
static::created(function (self $model) {
|
||||
CommentAdded::dispatch($model);
|
||||
});
|
||||
}
|
||||
|
||||
public function scopeApproved($query)
|
||||
{
|
||||
return $query->where('is_approved', true);
|
||||
@@ -44,6 +65,15 @@ class Comment extends Model
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function disapprove()
|
||||
{
|
||||
$this->update([
|
||||
'is_approved' => false,
|
||||
]);
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
protected function getAuthModelName()
|
||||
{
|
||||
if (config('comments.user_model')) {
|
||||
@@ -56,5 +86,4 @@ class Comment extends Model
|
||||
|
||||
throw new Exception('Could not determine the commentator model name.');
|
||||
}
|
||||
|
||||
}
|
||||
@@ -16,7 +16,6 @@ class CommentsServiceProvider extends ServiceProvider
|
||||
__DIR__.'/../config/config.php' => config_path('comments.php'),
|
||||
], 'config');
|
||||
|
||||
|
||||
if (! class_exists('CreateCommentsTable')) {
|
||||
$this->publishes([
|
||||
__DIR__.'/../database/migrations/create_comments_table.php.stub' => database_path('migrations/'.date('Y_m_d_His', time()).'_create_comments_table.php'),
|
||||
|
||||
@@ -2,14 +2,12 @@
|
||||
|
||||
namespace BeyondCode\Comments\Contracts;
|
||||
|
||||
|
||||
interface Commentator
|
||||
{
|
||||
/**
|
||||
* Check if a comment for a specific model needs to be approved.
|
||||
*
|
||||
* @param mixed $model
|
||||
* @return bool
|
||||
*/
|
||||
public function needsCommentApproval($model): bool;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
<?php
|
||||
|
||||
namespace BeyondCode\Comments\Events;
|
||||
|
||||
use BeyondCode\Comments\Comment;
|
||||
use Illuminate\Broadcasting\InteractsWithSockets;
|
||||
use Illuminate\Contracts\Events\ShouldDispatchAfterCommit;
|
||||
use Illuminate\Foundation\Events\Dispatchable;
|
||||
use Illuminate\Queue\SerializesModels;
|
||||
|
||||
class CommentAdded implements ShouldDispatchAfterCommit
|
||||
{
|
||||
use Dispatchable, InteractsWithSockets, SerializesModels;
|
||||
|
||||
/**
|
||||
* Create a new event instance.
|
||||
*/
|
||||
public function __construct(
|
||||
public Comment $comment,
|
||||
) {
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
<?php
|
||||
|
||||
namespace BeyondCode\Comments\Events;
|
||||
|
||||
use BeyondCode\Comments\Comment;
|
||||
use Illuminate\Broadcasting\InteractsWithSockets;
|
||||
use Illuminate\Contracts\Events\ShouldDispatchAfterCommit;
|
||||
use Illuminate\Foundation\Events\Dispatchable;
|
||||
use Illuminate\Queue\SerializesModels;
|
||||
|
||||
class CommentDeleted implements ShouldDispatchAfterCommit
|
||||
{
|
||||
use Dispatchable, InteractsWithSockets, SerializesModels;
|
||||
|
||||
/**
|
||||
* Create a new event instance.
|
||||
*/
|
||||
public function __construct(
|
||||
public Comment $comment,
|
||||
) {
|
||||
}
|
||||
}
|
||||
@@ -2,13 +2,12 @@
|
||||
|
||||
namespace BeyondCode\Comments\Traits;
|
||||
|
||||
|
||||
trait CanComment
|
||||
{
|
||||
/**
|
||||
* Check if a comment for a specific model needs to be approved.
|
||||
*
|
||||
* @param mixed $model
|
||||
* @return bool
|
||||
*/
|
||||
public function needsCommentApproval($model): bool
|
||||
{
|
||||
|
||||
@@ -2,9 +2,8 @@
|
||||
|
||||
namespace BeyondCode\Comments\Traits;
|
||||
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use BeyondCode\Comments\Contracts\Commentator;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\Relations\MorphMany;
|
||||
|
||||
trait HasComments
|
||||
@@ -22,7 +21,6 @@ trait HasComments
|
||||
/**
|
||||
* Attach a comment to this model.
|
||||
*
|
||||
* @param string $comment
|
||||
* @return \Illuminate\Database\Eloquent\Model
|
||||
*/
|
||||
public function comment(string $comment)
|
||||
@@ -33,8 +31,6 @@ trait HasComments
|
||||
/**
|
||||
* Attach a comment to this model as a specific user.
|
||||
*
|
||||
* @param Model|null $user
|
||||
* @param string $comment
|
||||
* @return \Illuminate\Database\Eloquent\Model
|
||||
*/
|
||||
public function commentAsUser(?Model $user, string $comment)
|
||||
@@ -46,10 +42,9 @@ trait HasComments
|
||||
'is_approved' => ($user instanceof Commentator) ? ! $user->needsCommentApproval($this) : false,
|
||||
'user_id' => is_null($user) ? null : $user->getKey(),
|
||||
'commentable_id' => $this->getKey(),
|
||||
'commentable_type' => get_class(),
|
||||
'commentable_type' => get_class($this),
|
||||
]);
|
||||
|
||||
return $this->comments()->save($comment);
|
||||
}
|
||||
|
||||
}
|
||||
+77
-9
@@ -2,9 +2,12 @@
|
||||
|
||||
namespace BeyondCode\Comments\Tests;
|
||||
|
||||
use BeyondCode\Comments\Events\CommentAdded;
|
||||
use BeyondCode\Comments\Events\CommentDeleted;
|
||||
use BeyondCode\Comments\Tests\Models\ApprovedUser;
|
||||
use BeyondCode\Comments\Tests\Models\Post;
|
||||
use Illuminate\Foundation\Auth\User;
|
||||
use Illuminate\Support\Facades\Event;
|
||||
|
||||
class CommentsTest extends TestCase
|
||||
{
|
||||
@@ -12,7 +15,7 @@ class CommentsTest extends TestCase
|
||||
public function users_without_commentator_interface_do_not_get_approved()
|
||||
{
|
||||
$post = Post::create([
|
||||
'title' => 'Some post'
|
||||
'title' => 'Some post',
|
||||
]);
|
||||
|
||||
$post->comment('this is a comment');
|
||||
@@ -26,7 +29,7 @@ class CommentsTest extends TestCase
|
||||
public function models_can_store_comments()
|
||||
{
|
||||
$post = Post::create([
|
||||
'title' => 'Some post'
|
||||
'title' => 'Some post',
|
||||
]);
|
||||
|
||||
$post->comment('this is a comment');
|
||||
@@ -42,7 +45,7 @@ class CommentsTest extends TestCase
|
||||
public function comments_without_users_have_no_relation()
|
||||
{
|
||||
$post = Post::create([
|
||||
'title' => 'Some post'
|
||||
'title' => 'Some post',
|
||||
]);
|
||||
|
||||
$comment = $post->comment('this is a comment');
|
||||
@@ -59,7 +62,7 @@ class CommentsTest extends TestCase
|
||||
auth()->login($user);
|
||||
|
||||
$post = Post::create([
|
||||
'title' => 'Some post'
|
||||
'title' => 'Some post',
|
||||
]);
|
||||
|
||||
$comment = $post->comment('this is a comment');
|
||||
@@ -73,7 +76,7 @@ class CommentsTest extends TestCase
|
||||
$user = User::first();
|
||||
|
||||
$post = Post::create([
|
||||
'title' => 'Some post'
|
||||
'title' => 'Some post',
|
||||
]);
|
||||
|
||||
$comment = $post->commentAsUser($user, 'this is a comment');
|
||||
@@ -87,7 +90,7 @@ class CommentsTest extends TestCase
|
||||
$user = User::first();
|
||||
|
||||
$post = Post::create([
|
||||
'title' => 'Some post'
|
||||
'title' => 'Some post',
|
||||
]);
|
||||
|
||||
$comment = $post->comment('this is a comment');
|
||||
@@ -105,7 +108,7 @@ class CommentsTest extends TestCase
|
||||
$user = User::first();
|
||||
|
||||
$post = Post::create([
|
||||
'title' => 'Some post'
|
||||
'title' => 'Some post',
|
||||
]);
|
||||
|
||||
$comment = $post->comment('this is a comment');
|
||||
@@ -120,7 +123,7 @@ class CommentsTest extends TestCase
|
||||
$user = ApprovedUser::first();
|
||||
|
||||
$post = Post::create([
|
||||
'title' => 'Some post'
|
||||
'title' => 'Some post',
|
||||
]);
|
||||
|
||||
$comment = $post->commentAsUser($user, 'this is a comment');
|
||||
@@ -134,7 +137,7 @@ class CommentsTest extends TestCase
|
||||
$user = ApprovedUser::first();
|
||||
|
||||
$post = Post::create([
|
||||
'title' => 'Some post'
|
||||
'title' => 'Some post',
|
||||
]);
|
||||
|
||||
$post->comment('this comment is not approved');
|
||||
@@ -145,4 +148,69 @@ class CommentsTest extends TestCase
|
||||
|
||||
$this->assertSame('this comment is approved', $post->comments()->approved()->first()->comment);
|
||||
}
|
||||
|
||||
/** @test */
|
||||
public function comments_are_deleted_when_posts_are_deleted()
|
||||
{
|
||||
$post = Post::create([
|
||||
'title' => 'Some post',
|
||||
]);
|
||||
|
||||
$comment = $post->comment('this comment will be deleted');
|
||||
|
||||
$post->delete();
|
||||
|
||||
$this->assertFalse($comment->exists());
|
||||
}
|
||||
|
||||
/** @test */
|
||||
public function replies_are_deleted_when_post_comments_are_deleted()
|
||||
{
|
||||
config(['comments.delete_replies_along_comments' => true]);
|
||||
|
||||
$post = Post::create([
|
||||
'title' => 'Some post',
|
||||
]);
|
||||
|
||||
$comment = $post->comment('this comment will be deleted');
|
||||
$reply = $comment->comment('this comment will be deleted too');
|
||||
|
||||
$comment->delete();
|
||||
|
||||
$this->assertFalse($reply->exists());
|
||||
}
|
||||
|
||||
/** @test */
|
||||
public function comment_added_event_is_dispatched_when_comment_is_created()
|
||||
{
|
||||
Event::fake([CommentAdded::class]);
|
||||
|
||||
$post = Post::create([
|
||||
'title' => 'Some post',
|
||||
]);
|
||||
|
||||
$comment = $post->comment('this comment is added');
|
||||
|
||||
Event::assertDispatched(CommentAdded::class, function ($event) use ($comment) {
|
||||
return $event->comment->is($comment);
|
||||
});
|
||||
}
|
||||
|
||||
/** @test */
|
||||
public function comment_deleted_event_is_dispatched_when_comment_is_deleted()
|
||||
{
|
||||
Event::fake([CommentDeleted::class]);
|
||||
|
||||
$post = Post::create([
|
||||
'title' => 'Some post',
|
||||
]);
|
||||
|
||||
$comment = $post->comment('this comment is added');
|
||||
|
||||
$comment->delete();
|
||||
|
||||
Event::assertDispatched(CommentDeleted::class, function ($event) use ($comment) {
|
||||
return $event->comment->is($comment);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,22 +2,20 @@
|
||||
|
||||
namespace BeyondCode\Comments\Tests\Models;
|
||||
|
||||
use Illuminate\Foundation\Auth\User;
|
||||
use BeyondCode\Comments\Contracts\Commentator;
|
||||
use Illuminate\Foundation\Auth\User;
|
||||
|
||||
class ApprovedUser extends User implements Commentator
|
||||
{
|
||||
|
||||
protected $table = 'users';
|
||||
|
||||
/**
|
||||
* Check if a comment for a specific model needs to be approved.
|
||||
*
|
||||
* @param mixed $model
|
||||
* @return bool
|
||||
*/
|
||||
public function needsCommentApproval($model): bool
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -10,4 +10,13 @@ class Post extends Model
|
||||
use HasComments;
|
||||
|
||||
protected $guarded = [];
|
||||
|
||||
public static function boot(): void
|
||||
{
|
||||
parent::boot();
|
||||
|
||||
static::deleting(function (self $model) {
|
||||
$model->comments()->delete();
|
||||
});
|
||||
}
|
||||
}
|
||||
+4
-6
@@ -2,14 +2,13 @@
|
||||
|
||||
namespace BeyondCode\Comments\Tests;
|
||||
|
||||
use Illuminate\Foundation\Auth\User;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use BeyondCode\Comments\CommentsServiceProvider;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Foundation\Auth\User;
|
||||
|
||||
abstract class TestCase extends \Orchestra\Testbench\TestCase
|
||||
{
|
||||
|
||||
public function setUp()
|
||||
public function setUp(): void
|
||||
{
|
||||
parent::setUp();
|
||||
$this->loadLaravelMigrations(['--database' => 'sqlite']);
|
||||
@@ -54,8 +53,7 @@ abstract class TestCase extends \Orchestra\Testbench\TestCase
|
||||
User::forceCreate([
|
||||
'name' => 'User',
|
||||
'email' => 'user@email.com',
|
||||
'password' => 'test'
|
||||
'password' => 'test',
|
||||
]);
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user