Skip to content

Commit

Permalink
Add tests and fix what the tests uncovered
Browse files Browse the repository at this point in the history
  • Loading branch information
eiriksm committed Mar 22, 2024
1 parent cc7a85a commit 36a58c5
Show file tree
Hide file tree
Showing 14 changed files with 224 additions and 2 deletions.
4 changes: 2 additions & 2 deletions src/Config.php
Expand Up @@ -119,12 +119,12 @@ public function shouldAutoMerge($is_security_update = false)
public function getAutomergeMethod($is_security_update = false) : string
{
if (!$is_security_update) {
return $this->getAutoMergeMethodWithFallback($is_security_update);
return $this->getAutoMergeMethodWithFallback('automerge_method');
}
// Otherwise, let's see if it's even set in config. Otherwise this
// should be set to the value (or fallback value) of the general
// automerge method.
if (!$this->hasConfigForKey('automerge_method_security')) {
if ($this->hasConfigForKey('automerge_method_security')) {
return $this->getAutoMergeMethodWithFallback('automerge_method_security');
}
return $this->getAutoMergeMethodWithFallback('automerge_method');
Expand Down
138 changes: 138 additions & 0 deletions tests/UnitTest.php
Expand Up @@ -286,6 +286,28 @@ public function testAutoMergeSecurity($filename, $expected_result)
self::assertEquals($expected_result, $data->shouldAutoMerge(true));
}

/**
* Test the automerge_method option.
*
* @dataProvider getAutoMergeMethod
*/
public function testAutoMergeMethod($filename, $expected_result)
{
$data = $this->createDataFromFixture($filename);
self::assertEquals($expected_result, $data->getAutomergeMethod());
}

/**
* Test the automerge_method option.
*
* @dataProvider getAutoMergeMethodSecurity
*/
public function testAutoMergeMethodSecurity($filename, $expected_result)
{
$data = $this->createDataFromFixture($filename);
self::assertEquals($expected_result, $data->getAutomergeMethod(true));
}

/**
* Test the security updates config option.
*
Expand Down Expand Up @@ -423,6 +445,122 @@ public function getAutoMergeSecurity()
];
}

public function getAutoMergeMethod()
{
return [
[
'empty.json',
'merge',
],
[
'automerge_method.json',
'merge',
],
[
'automerge_method2.json',
'merge',
],
[
'automerge_method3.json',
'merge',
],
[
'automerge_method4.json',
'squash',
],
[
'automerge_method5.json',
'rebase',
],
[
'automerge_method6.json',
'merge',
],
[
'automerge_method_security.json',
'merge',
],
[
'automerge_method_security2.json',
'merge',
],
[
'automerge_method_security3.json',
'merge',
],
[
'automerge_method_security4.json',
'merge',
],
[
'automerge_method_security5.json',
'merge',
],
[
'automerge_method_security6.json',
'merge',
]
];
}

public function getAutoMergeMethodSecurity()
{
return [
[
'empty.json',
'merge',
],
[
'automerge_method.json',
'merge',
],
[
'automerge_method2.json',
'merge',
],
[
'automerge_method3.json',
'merge',
],
[
'automerge_method4.json',
'squash',
],
[
'automerge_method5.json',
'rebase',
],
[
'automerge_method6.json',
'merge',
],
[
'automerge_method_security.json',
'merge',
],
[
'automerge_method_security2.json',
'merge',
],
[
'automerge_method_security3.json',
'merge',
],
[
'automerge_method_security4.json',
'squash',
],
[
'automerge_method_security5.json',
'rebase',
],
[
'automerge_method_security6.json',
'merge',
]
];
}

public function getAlwaysUpdateAll()
{
return [
Expand Down
7 changes: 7 additions & 0 deletions tests/fixtures/automerge_method.json
@@ -0,0 +1,7 @@
{
"extra": {
"violinist": {
"automerge_method": 1
}
}
}
7 changes: 7 additions & 0 deletions tests/fixtures/automerge_method2.json
@@ -0,0 +1,7 @@
{
"extra": {
"violinist": {
"automerge_method": "something-else"
}
}
}
7 changes: 7 additions & 0 deletions tests/fixtures/automerge_method3.json
@@ -0,0 +1,7 @@
{
"extra": {
"violinist": {
"automerge_method": ["not allow to be an array for sure"]
}
}
}
7 changes: 7 additions & 0 deletions tests/fixtures/automerge_method4.json
@@ -0,0 +1,7 @@
{
"extra": {
"violinist": {
"automerge_method": "squash"
}
}
}
7 changes: 7 additions & 0 deletions tests/fixtures/automerge_method5.json
@@ -0,0 +1,7 @@
{
"extra": {
"violinist": {
"automerge_method": "rebase"
}
}
}
7 changes: 7 additions & 0 deletions tests/fixtures/automerge_method6.json
@@ -0,0 +1,7 @@
{
"extra": {
"violinist": {
"automerge_method": "merge"
}
}
}
7 changes: 7 additions & 0 deletions tests/fixtures/automerge_method_security.json
@@ -0,0 +1,7 @@
{
"extra": {
"violinist": {
"automerge_method_security": 1
}
}
}
7 changes: 7 additions & 0 deletions tests/fixtures/automerge_method_security2.json
@@ -0,0 +1,7 @@
{
"extra": {
"violinist": {
"automerge_method_security": "something-else"
}
}
}
7 changes: 7 additions & 0 deletions tests/fixtures/automerge_method_security3.json
@@ -0,0 +1,7 @@
{
"extra": {
"violinist": {
"automerge_method_security": ["not allow to be an array for sure"]
}
}
}
7 changes: 7 additions & 0 deletions tests/fixtures/automerge_method_security4.json
@@ -0,0 +1,7 @@
{
"extra": {
"violinist": {
"automerge_method_security": "squash"
}
}
}
7 changes: 7 additions & 0 deletions tests/fixtures/automerge_method_security5.json
@@ -0,0 +1,7 @@
{
"extra": {
"violinist": {
"automerge_method_security": "rebase"
}
}
}
7 changes: 7 additions & 0 deletions tests/fixtures/automerge_method_security6.json
@@ -0,0 +1,7 @@
{
"extra": {
"violinist": {
"automerge_method_security": "merge"
}
}
}

0 comments on commit 36a58c5

Please sign in to comment.