Skip to content

Commit caa1235

Browse files
committed
qa: fixes new Psalm errors due to updating dependencies
- Add laminas-db as a dev requirement, so that Psalm won't error out - Updates code to remove newly flagged Psalm errors - Use assertions instead of `fail()` where possible - Add psalm-param annotations where needed - Adds one item to baseline that cannot be fixed (upstream issue in laminas-servicemanager) Signed-off-by: Matthew Weier O'Phinney <[email protected]>
1 parent 110d48e commit caa1235

File tree

5 files changed

+92
-36
lines changed

5 files changed

+92
-36
lines changed

composer.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,8 @@
3636
"phpunit/phpunit": "^9.3",
3737
"vimeo/psalm": "^4.7",
3838
"psalm/plugin-phpunit": "^0.16.0",
39-
"webmozart/assert": "^1.10"
39+
"webmozart/assert": "^1.10",
40+
"laminas/laminas-db": "^2.13"
4041
},
4142
"autoload": {
4243
"psr-4": {

composer.lock

Lines changed: 72 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

psalm-baseline.xml

Lines changed: 5 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<?xml version="1.0" encoding="UTF-8"?>
2-
<files psalm-version="4.7.3@38c452ae584467e939d55377aaf83b5a26f19dd1">
2+
<files psalm-version="4.18.1@dda05fa913f4dc6eb3386f2f7ce5a45d37a71bcb">
33
<file src="src/Api.php">
44
<MissingConstructor occurrences="2">
55
<code>$authorization</code>
@@ -103,7 +103,7 @@
103103
<code>$this-&gt;config['router']['routes'][$config['route_name']]</code>
104104
<code>$this-&gt;config['router']['routes'][$serviceData['route_name']]</code>
105105
</MixedArrayOffset>
106-
<MixedAssignment occurrences="29">
106+
<MixedAssignment occurrences="26">
107107
<code>$baseOperationData</code>
108108
<code>$description</code>
109109
<code>$description</code>
@@ -127,12 +127,9 @@
127127
<code>$serviceClassName</code>
128128
<code>$serviceClassName</code>
129129
<code>$serviceConfig</code>
130-
<code>$serviceConfig</code>
131130
<code>$validatorKey</code>
132131
<code>$validatorName</code>
133132
<code>$validators</code>
134-
<code>$version</code>
135-
<code>$versions[]</code>
136133
</MixedAssignment>
137134
<MixedInferredReturnType occurrences="3">
138135
<code>array</code>
@@ -149,9 +146,6 @@
149146
<code>$field</code>
150147
<code>$rpcConfig</code>
151148
</PossiblyInvalidArgument>
152-
<UnusedVariable occurrences="1">
153-
<code>$serviceConfig</code>
154-
</UnusedVariable>
155149
</file>
156150
<file src="src/Controller.php">
157151
<MixedArgument occurrences="3">
@@ -198,6 +192,9 @@
198192
<ParamNameMismatch occurrences="1">
199193
<code>$container</code>
200194
</ParamNameMismatch>
195+
<RedundantConditionGivenDocblockType occurrences="1">
196+
<code>$container-&gt;getServiceLocator()</code>
197+
</RedundantConditionGivenDocblockType>
201198
</file>
202199
<file src="src/Factory/ApiFactoryFactory.php">
203200
<MixedArgument occurrences="3">
@@ -317,10 +314,6 @@
317314
<DocblockTypeContradiction occurrences="1">
318315
<code>is_array($code)</code>
319316
</DocblockTypeContradiction>
320-
<InvalidScalarArgument occurrences="2">
321-
<code>1</code>
322-
<code>1</code>
323-
</InvalidScalarArgument>
324317
<MixedArgument occurrences="2">
325318
<code>$api</code>
326319
<code>$api</code>
@@ -336,15 +329,10 @@
336329
<MixedArrayAccess occurrences="2">
337330
<code>$api['name']</code>
338331
<code>$api['versions']</code>
339-
<code>$api['versions']</code>
340332
</MixedArrayAccess>
341333
<MixedAssignment occurrences="1">
342334
<code>$api</code>
343335
</MixedAssignment>
344-
<PossiblyNullArgument occurrences="2">
345-
<code>var_export($actualCodes, 1)</code>
346-
<code>var_export($expectedCodes, 1)</code>
347-
</PossiblyNullArgument>
348336
</file>
349337
<file src="test/ControllerTest.php">
350338
<MixedArgument occurrences="1">

src/ApiFactory.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
use Laminas\ModuleManager\ModuleManager;
1010

1111
use function array_diff_key;
12+
use function array_keys;
1213
use function array_merge;
1314
use function array_push;
1415
use function dirname;
@@ -70,7 +71,7 @@ public function createApiList()
7071
$serviceConfigs = array_merge($serviceConfigs, $this->config['api-tools-rpc']);
7172
}
7273

73-
foreach ($serviceConfigs as $serviceName => $serviceConfig) {
74+
foreach (array_keys($serviceConfigs) as $serviceName) {
7475
if (! preg_match($versionRegex, $serviceName, $matches)) {
7576
continue;
7677
}

test/ApiFactoryTest.php

Lines changed: 11 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,8 @@ protected function setUp(): void
9797
/**
9898
* @param int|int[]|string|string[] $expectedCodes
9999
* @param int[]|string[] $actualCodes
100+
* @psalm-param int|string|list<int|string> $expectedCodes
101+
* @psalm-param list<int|string> $actualCodes
100102
*/
101103
public function assertContainsStatusCodes($expectedCodes, array $actualCodes, string $message = ''): void
102104
{
@@ -118,21 +120,17 @@ public function assertContainsStatusCodes($expectedCodes, array $actualCodes, st
118120
return true;
119121
});
120122

121-
if (empty($expectedCodePairs)) {
122-
$this->fail(sprintf(
123-
'No codes provided, or no known codes match: %s',
124-
var_export($expectedCodes, 1)
125-
));
126-
}
123+
$this->assertNotEmpty($expectedCodePairs, sprintf(
124+
'No codes provided, or no known codes match: %s',
125+
var_export($expectedCodes, true)
126+
));
127127

128128
foreach ($expectedCodePairs as $code) {
129-
if (! in_array($code, $actualCodes, true)) {
130-
$this->fail(sprintf(
131-
"Failed to find code %s in actual codes:\n%s\n",
132-
$code['code'],
133-
var_export($actualCodes, 1)
134-
));
135-
}
129+
$this->assertContains($code, $actualCodes, sprintf(
130+
"Failed to find code %s in actual codes:\n%s\n",
131+
$code['code'],
132+
var_export($actualCodes, true)
133+
));
136134
}
137135
}
138136

@@ -196,7 +194,6 @@ public function testCreateRestService(): void
196194
break;
197195
default:
198196
$this->fail('Unexpected HTTP method encountered: ' . $operation->getHttpMethod());
199-
break;
200197
}
201198
}
202199

@@ -225,7 +222,6 @@ public function testCreateRestService(): void
225222
break;
226223
default:
227224
$this->fail('Unexpected entity HTTP method encountered: ' . $operation->getHttpMethod());
228-
break;
229225
}
230226
}
231227
}
@@ -357,7 +353,6 @@ public function testCreateRpcService(): void
357353
break;
358354
default:
359355
$this->fail('Unexpected HTTP method encountered: ' . $operation->getHttpMethod());
360-
break;
361356
}
362357
}
363358
}

0 commit comments

Comments
 (0)