Skip to content

Commit 51d0fa9

Browse files
committed
- PrepareCommitMessageTest implemented
1 parent d393a78 commit 51d0fa9

8 files changed

+97
-13
lines changed

tests/Feature/CommitMessageTest.php

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
<?php
22

33
use Igorsgm\GitHooks\Facades\GitHooks;
4-
use Igorsgm\GitHooks\Tests\Fixtures\CommitMessageTestHook1;
5-
use Igorsgm\GitHooks\Tests\Fixtures\CommitMessageTestHook2;
6-
use Igorsgm\GitHooks\Tests\Fixtures\CommitMessageTestHook4;
4+
use Igorsgm\GitHooks\Tests\Fixtures\CommitMessageFixtureHook1;
5+
use Igorsgm\GitHooks\Tests\Fixtures\CommitMessageFixtureHook2;
6+
use Igorsgm\GitHooks\Tests\Fixtures\CommitMessageFixtureHook4;
77

88
test('Commit Message is sent through HookPipes', function () {
99
$commitMessageHooks = [
10-
CommitMessageTestHook1::class,
11-
CommitMessageTestHook2::class,
10+
CommitMessageFixtureHook1::class,
11+
CommitMessageFixtureHook2::class,
1212
];
1313

1414
$this->config->set('git-hooks.commit-msg', $commitMessageHooks);
@@ -34,7 +34,7 @@
3434

3535
test('Pass parameters into Commit Hook class', function () {
3636
$commitMessageHooks = [
37-
CommitMessageTestHook4::class => [
37+
CommitMessageFixtureHook4::class => [
3838
'param1' => 'hello',
3939
'param2' => 'world',
4040
],

tests/Feature/PreCommitTest.php

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,6 @@
2727
});
2828

2929
it('returns 1 on HookFailException', function () {
30-
$changedFilesString = 'AM src/ChangedFiles.php';
31-
3230
$preCommitHook1 = mock(PreCommitHook::class)->expect(
3331
handle: function (ChangedFiles $files, Closure $closure) {
3432
throw new HookFailException();
@@ -39,7 +37,5 @@
3937
$preCommitHook1,
4038
]);
4139

42-
GitHooks::shouldReceive('getListOfChangedFiles')->andReturn($changedFilesString);
43-
4440
$this->artisan('git-hooks:pre-commit')->assertExitCode(1);
4541
});
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
<?php
2+
3+
use Igorsgm\GitHooks\Facades\GitHooks;
4+
use Igorsgm\GitHooks\Tests\Fixtures\PrepareCommitMessageFixtureHook1;
5+
use Igorsgm\GitHooks\Tests\Fixtures\PrepareCommitMessageFixtureHook2;
6+
7+
test('Commit Message is sent through HookPipes', function () {
8+
$prepareCommitMessageHooks = [
9+
PrepareCommitMessageFixtureHook1::class,
10+
PrepareCommitMessageFixtureHook2::class,
11+
];
12+
13+
$this->config->set('git-hooks.prepare-commit-msg', $prepareCommitMessageHooks);
14+
15+
$file = 'tmp/COMMIT_MESSAGE';
16+
17+
GitHooks::shouldReceive('getCommitMessageContentFromFile')
18+
->andReturn('Test commit');
19+
20+
GitHooks::shouldReceive('getListOfChangedFiles')
21+
->andReturn('AM src/ChangedFiles.php');
22+
23+
GitHooks::shouldReceive('updateCommitMessageContentInFile')
24+
->with(base_path($file), 'Test commit hook1 hook2');
25+
26+
$command = $this->artisan('git-hooks:prepare-commit-msg', ['file' => $file])
27+
->assertExitCode(0);
28+
29+
foreach ($prepareCommitMessageHooks as $hook) {
30+
$command->expectsOutputToContain(sprintf('Hook: %s...', resolve($hook)->getName()));
31+
}
32+
});

tests/Fixtures/CommitMessageTestHook1.php renamed to tests/Fixtures/CommitMessageFixtureHook1.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
use Closure;
66
use Igorsgm\GitHooks\Contracts\MessageHook;
77

8-
class CommitMessageTestHook1 implements MessageHook
8+
class CommitMessageFixtureHook1 implements MessageHook
99
{
1010
/**
1111
* {@inheritDoc}

tests/Fixtures/CommitMessageTestHook2.php renamed to tests/Fixtures/CommitMessageFixtureHook2.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
use Closure;
66
use Igorsgm\GitHooks\Contracts\MessageHook;
77

8-
class CommitMessageTestHook2 implements MessageHook
8+
class CommitMessageFixtureHook2 implements MessageHook
99
{
1010
/**
1111
* {@inheritDoc}

tests/Fixtures/CommitMessageTestHook4.php renamed to tests/Fixtures/CommitMessageFixtureHook4.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
use Closure;
66
use Igorsgm\GitHooks\Contracts\MessageHook;
77

8-
class CommitMessageTestHook4 implements MessageHook
8+
class CommitMessageFixtureHook4 implements MessageHook
99
{
1010
/**
1111
* @var array
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
<?php
2+
3+
namespace Igorsgm\GitHooks\Tests\Fixtures;
4+
5+
use Closure;
6+
use Igorsgm\GitHooks\Contracts\MessageHook;
7+
use Igorsgm\GitHooks\Git\CommitMessage;
8+
9+
class PrepareCommitMessageFixtureHook1 implements MessageHook
10+
{
11+
/**
12+
* {@inheritDoc}
13+
*/
14+
public function handle(CommitMessage $message, Closure $next)
15+
{
16+
$message->setMessage($message->getMessage().' hook1');
17+
18+
return $next($message);
19+
}
20+
21+
/**
22+
* {@inheritDoc}
23+
*/
24+
public function getName(): string
25+
{
26+
return 'Prepare Commit Message Hook 1';
27+
}
28+
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
<?php
2+
3+
namespace Igorsgm\GitHooks\Tests\Fixtures;
4+
5+
use Closure;
6+
use Igorsgm\GitHooks\Contracts\MessageHook;
7+
use Igorsgm\GitHooks\Git\CommitMessage;
8+
9+
class PrepareCommitMessageFixtureHook2 implements MessageHook
10+
{
11+
/**
12+
* {@inheritDoc}
13+
*/
14+
public function handle(CommitMessage $message, Closure $next)
15+
{
16+
$message->setMessage($message->getMessage().' hook2');
17+
18+
return $next($message);
19+
}
20+
21+
/**
22+
* {@inheritDoc}
23+
*/
24+
public function getName(): string
25+
{
26+
return 'Prepare Commit Message Hook 2';
27+
}
28+
}

0 commit comments

Comments
 (0)