Skip to content

Bump psalm/phar from 5.12.0 to 5.15.0 in /tools/psalm #1648

Bump psalm/phar from 5.12.0 to 5.15.0 in /tools/psalm

Bump psalm/phar from 5.12.0 to 5.15.0 in /tools/psalm #1648

Triggered via pull request August 21, 2023 04:46
Status Failure
Total duration 8m 40s
Artifacts

test-suite.yml

on: pull_request
Matrix: Mutation Tests
Matrix: Static Analyze
Matrix: Tests
Fit to window
Zoom out
Zoom in

Annotations

10 errors and 28 warnings
RedundantFunctionCall: src/adapter/etl-adapter-avro/src/Flow/ETL/Adapter/Avro/FlixTech/AvroResource.php#L166
src/adapter/etl-adapter-avro/src/Flow/ETL/Adapter/Avro/FlixTech/AvroResource.php:166:40: RedundantFunctionCall: Using sprintf with a single argument is redundant, since there are no placeholder params to be substituted (see https://psalm.dev/280)
MixedArgumentTypeCoercion: src/adapter/etl-adapter-elasticsearch/src/Flow/ETL/Adapter/Elasticsearch/ElasticsearchPHP/ElasticsearchExtractor.php#L59
src/adapter/etl-adapter-elasticsearch/src/Flow/ETL/Adapter/Elasticsearch/ElasticsearchPHP/ElasticsearchExtractor.php:59:64: MixedArgumentTypeCoercion: Argument 1 of Elastic\Elasticsearch\Client::openPointInTime expects array{error_trace: bool, expand_wildcards: Elastic\Elasticsearch\Traits\enum, filter_path: list<mixed>, human: bool, ignore_unavailable: bool, index: list<mixed>, keep_alive: string, preference: string, pretty: bool, routing: string, source: string}, but parent type array<array-key, mixed> provided (see https://psalm.dev/194)
MixedArgumentTypeCoercion: src/adapter/etl-adapter-elasticsearch/src/Flow/ETL/Adapter/Elasticsearch/ElasticsearchPHP/ElasticsearchExtractor.php#L72
src/adapter/etl-adapter-elasticsearch/src/Flow/ETL/Adapter/Elasticsearch/ElasticsearchPHP/ElasticsearchExtractor.php:72:62: MixedArgumentTypeCoercion: Argument 1 of Elastic\Elasticsearch\Client::search expects array{_source: list<mixed>, _source_excludes: list<mixed>, _source_includes: list<mixed>, allow_no_indices: bool, allow_partial_search_results: bool, analyze_wildcard: bool, analyzer: string, batched_reduce_size: Elastic\Elasticsearch\Traits\number, body: array<array-key, mixed>, ccs_minimize_roundtrips: bool, default_operator: Elastic\Elasticsearch\Traits\enum, df: string, docvalue_fields: list<mixed>, error_trace: bool, expand_wildcards: Elastic\Elasticsearch\Traits\enum, explain: bool, filter_path: list<mixed>, force_synthetic_source: bool, from: Elastic\Elasticsearch\Traits\number, human: bool, ignore_throttled: bool, ignore_unavailable: bool, include_named_queries_score: bool, index: list<mixed>, lenient: bool, max_concurrent_shard_requests: Elastic\Elasticsearch\Traits\number, min_compatible_shard_node: string, pre_filter_shard_size: Elastic\Elasticsearch\Traits\number, preference: string, pretty: bool, q: string, request_cache: bool, rest_total_hits_as_int: bool, routing: list<mixed>, scroll: Elastic\Elasticsearch\Traits\time, search_type: Elastic\Elasticsearch\Traits\enum, seq_no_primary_term: bool, size: Elastic\Elasticsearch\Traits\number, sort: list<mixed>, source: string, stats: list<mixed>, stored_fields: list<mixed>, suggest_field: string, suggest_mode: Elastic\Elasticsearch\Traits\enum, suggest_size: Elastic\Elasticsearch\Traits\number, suggest_text: string, terminate_after: Elastic\Elasticsearch\Traits\number, timeout: Elastic\Elasticsearch\Traits\time, track_scores: bool, track_total_hits: Elastic\Elasticsearch\Traits\long|bool, typed_keys: bool, version: bool}, but parent type array<array-key, mixed> provided (see https://psalm.dev/194)
MixedArgumentTypeCoercion: src/adapter/etl-adapter-elasticsearch/src/Flow/ETL/Adapter/Elasticsearch/ElasticsearchPHP/ElasticsearchExtractor.php#L95
src/adapter/etl-adapter-elasticsearch/src/Flow/ETL/Adapter/Elasticsearch/ElasticsearchPHP/ElasticsearchExtractor.php:95:74: MixedArgumentTypeCoercion: Argument 1 of Elastic\Elasticsearch\Client::search expects array{_source: list<mixed>, _source_excludes: list<mixed>, _source_includes: list<mixed>, allow_no_indices: bool, allow_partial_search_results: bool, analyze_wildcard: bool, analyzer: string, batched_reduce_size: Elastic\Elasticsearch\Traits\number, body: array<array-key, mixed>, ccs_minimize_roundtrips: bool, default_operator: Elastic\Elasticsearch\Traits\enum, df: string, docvalue_fields: list<mixed>, error_trace: bool, expand_wildcards: Elastic\Elasticsearch\Traits\enum, explain: bool, filter_path: list<mixed>, force_synthetic_source: bool, from: Elastic\Elasticsearch\Traits\number, human: bool, ignore_throttled: bool, ignore_unavailable: bool, include_named_queries_score: bool, index: list<mixed>, lenient: bool, max_concurrent_shard_requests: Elastic\Elasticsearch\Traits\number, min_compatible_shard_node: string, pre_filter_shard_size: Elastic\Elasticsearch\Traits\number, preference: string, pretty: bool, q: string, request_cache: bool, rest_total_hits_as_int: bool, routing: list<mixed>, scroll: Elastic\Elasticsearch\Traits\time, search_type: Elastic\Elasticsearch\Traits\enum, seq_no_primary_term: bool, size: Elastic\Elasticsearch\Traits\number, sort: list<mixed>, source: string, stats: list<mixed>, stored_fields: list<mixed>, suggest_field: string, suggest_mode: Elastic\Elasticsearch\Traits\enum, suggest_size: Elastic\Elasticsearch\Traits\number, suggest_text: string, terminate_after: Elastic\Elasticsearch\Traits\number, timeout: Elastic\Elasticsearch\Traits\time, track_scores: bool, track_total_hits: Elastic\Elasticsearch\Traits\long|bool, typed_keys: bool, version: bool}, but parent type array<array-key, mixed> provided (see https://psalm.dev/194)
MixedArgumentTypeCoercion: src/adapter/etl-adapter-elasticsearch/src/Flow/ETL/Adapter/Elasticsearch/ElasticsearchPHP/ElasticsearchExtractor.php#L134
src/adapter/etl-adapter-elasticsearch/src/Flow/ETL/Adapter/Elasticsearch/ElasticsearchPHP/ElasticsearchExtractor.php:134:74: MixedArgumentTypeCoercion: Argument 1 of Elastic\Elasticsearch\Client::search expects array{_source: list<mixed>, _source_excludes: list<mixed>, _source_includes: list<mixed>, allow_no_indices: bool, allow_partial_search_results: bool, analyze_wildcard: bool, analyzer: string, batched_reduce_size: Elastic\Elasticsearch\Traits\number, body: array<array-key, mixed>, ccs_minimize_roundtrips: bool, default_operator: Elastic\Elasticsearch\Traits\enum, df: string, docvalue_fields: list<mixed>, error_trace: bool, expand_wildcards: Elastic\Elasticsearch\Traits\enum, explain: bool, filter_path: list<mixed>, force_synthetic_source: bool, from: Elastic\Elasticsearch\Traits\number, human: bool, ignore_throttled: bool, ignore_unavailable: bool, include_named_queries_score: bool, index: list<mixed>, lenient: bool, max_concurrent_shard_requests: Elastic\Elasticsearch\Traits\number, min_compatible_shard_node: string, pre_filter_shard_size: Elastic\Elasticsearch\Traits\number, preference: string, pretty: bool, q: string, request_cache: bool, rest_total_hits_as_int: bool, routing: list<mixed>, scroll: Elastic\Elasticsearch\Traits\time, search_type: Elastic\Elasticsearch\Traits\enum, seq_no_primary_term: bool, size: Elastic\Elasticsearch\Traits\number, sort: list<mixed>, source: string, stats: list<mixed>, stored_fields: list<mixed>, suggest_field: string, suggest_mode: Elastic\Elasticsearch\Traits\enum, suggest_size: Elastic\Elasticsearch\Traits\number, suggest_text: string, terminate_after: Elastic\Elasticsearch\Traits\number, timeout: Elastic\Elasticsearch\Traits\time, track_scores: bool, track_total_hits: Elastic\Elasticsearch\Traits\long|bool, typed_keys: bool, version: bool}, but parent type array<array-key, mixed> provided (see https://psalm.dev/194)
InvalidArgument: src/adapter/etl-adapter-elasticsearch/src/Flow/ETL/Adapter/Elasticsearch/ElasticsearchPHP/ElasticsearchExtractor.php#L178
src/adapter/etl-adapter-elasticsearch/src/Flow/ETL/Adapter/Elasticsearch/ElasticsearchPHP/ElasticsearchExtractor.php:178:47: InvalidArgument: Argument 1 of Elastic\Elasticsearch\Client::closePointInTime expects array{body: array<array-key, mixed>, error_trace: bool, filter_path: list<mixed>, human: bool, pretty: bool, source: string}, but array{body: array{id: string}} provided (see https://psalm.dev/004)
InvalidArgument: src/adapter/etl-adapter-elasticsearch/src/Flow/ETL/Adapter/Elasticsearch/ElasticsearchPHP/ElasticsearchLoader.php#L150
src/adapter/etl-adapter-elasticsearch/src/Flow/ETL/Adapter/Elasticsearch/ElasticsearchPHP/ElasticsearchLoader.php:150:35: InvalidArgument: Argument 1 of Elastic\Elasticsearch\Client::bulk expects array{_source: list<mixed>, _source_excludes: list<mixed>, _source_includes: list<mixed>, body: array<array-key, mixed>, error_trace: bool, filter_path: list<mixed>, human: bool, index: string, pipeline: string, pretty: bool, refresh: Elastic\Elasticsearch\Traits\enum, require_alias: bool, routing: string, source: string, timeout: Elastic\Elasticsearch\Traits\time, type: string, wait_for_active_shards: string}, but array{body: list{0?: array<array-key, mixed|non-empty-array<array-key, mixed>>, ...<array<array-key, array<array-key, mixed>|mixed>>}, ...<array-key, mixed>} provided (see https://psalm.dev/004)
RedundantFunctionCallGivenDocblockType: src/core/etl/src/Flow/ETL/DataFrame.php#L328
src/core/etl/src/Flow/ETL/DataFrame.php:328:31: RedundantFunctionCallGivenDocblockType: The call to strtolower is unnecessary given the docblock type (see https://psalm.dev/281)
RedundantFunctionCallGivenDocblockType: src/core/etl/src/Flow/ETL/DataFrame.php#L354
src/core/etl/src/Flow/ETL/DataFrame.php:354:31: RedundantFunctionCallGivenDocblockType: The call to strtolower is unnecessary given the docblock type (see https://psalm.dev/281)
ArgumentTypeCoercion: src/core/etl/src/Flow/ETL/Row/Reference/Expression/PregMatch.php#L27
src/core/etl/src/Flow/ETL/Row/Reference/Expression/PregMatch.php:27:28: ArgumentTypeCoercion: Argument 1 of preg_match expects non-empty-string, but parent type string provided (see https://psalm.dev/193)
Static Analyze (locked, 8.1, ubuntu-latest)
The following actions uses node12 which is deprecated and will be forced to run on node16: actions/checkout@v2. For more info: https://github.blog/changelog/2023-06-13-github-actions-all-actions-will-run-on-node16-instead-of-node12-by-default/
Static Analyze (locked, 8.1, ubuntu-latest)
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
Tests (lowest, 8.2, ubuntu-latest)
The following actions uses node12 which is deprecated and will be forced to run on node16: actions/checkout@v2. For more info: https://github.blog/changelog/2023-06-13-github-actions-all-actions-will-run-on-node16-instead-of-node12-by-default/
Tests (lowest, 8.2, ubuntu-latest)
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
Tests (locked, 8.1, ubuntu-latest)
The following actions uses node12 which is deprecated and will be forced to run on node16: actions/checkout@v2. For more info: https://github.blog/changelog/2023-06-13-github-actions-all-actions-will-run-on-node16-instead-of-node12-by-default/
Tests (locked, 8.1, ubuntu-latest)
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
Tests (highest, 8.1, ubuntu-latest)
The following actions uses node12 which is deprecated and will be forced to run on node16: actions/checkout@v2. For more info: https://github.blog/changelog/2023-06-13-github-actions-all-actions-will-run-on-node16-instead-of-node12-by-default/
Tests (highest, 8.1, ubuntu-latest)
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
Tests (highest, 8.2, ubuntu-latest)
The following actions uses node12 which is deprecated and will be forced to run on node16: actions/checkout@v2. For more info: https://github.blog/changelog/2023-06-13-github-actions-all-actions-will-run-on-node16-instead-of-node12-by-default/
Tests (highest, 8.2, ubuntu-latest)
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
Tests (lowest, 8.1, ubuntu-latest)
The following actions uses node12 which is deprecated and will be forced to run on node16: actions/checkout@v2. For more info: https://github.blog/changelog/2023-06-13-github-actions-all-actions-will-run-on-node16-instead-of-node12-by-default/
Tests (lowest, 8.1, ubuntu-latest)
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
Tests (locked, 8.2, ubuntu-latest)
The following actions uses node12 which is deprecated and will be forced to run on node16: actions/checkout@v2. For more info: https://github.blog/changelog/2023-06-13-github-actions-all-actions-will-run-on-node16-instead-of-node12-by-default/
Tests (locked, 8.2, ubuntu-latest)
Failed to save: uploadChunk (start: 0, end: 33554431) failed: Cache service responded with 500
Tests (locked, 8.2, ubuntu-latest)
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
Mutation Tests (locked, 8.1, ubuntu-latest)
The following actions uses node12 which is deprecated and will be forced to run on node16: actions/checkout@v2. For more info: https://github.blog/changelog/2023-06-13-github-actions-all-actions-will-run-on-node16-instead-of-node12-by-default/
Mutation Tests (locked, 8.1, ubuntu-latest)
Failed to save: uploadChunk (start: 0, end: 608894) failed: Cache service responded with 500
Mutation Tests (locked, 8.1, ubuntu-latest)
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
Mutation Tests (locked, 8.1, ubuntu-latest): src/adapter/etl-adapter-avro/src/Flow/ETL/Adapter/Avro/FlixTech/ValueConverter.php#L38
Escaped Mutant for Mutator "Identical": --- Original +++ New @@ @@ foreach ($data as $entry => $value) { $avroType = $this->type($entry); if ($avroType !== null && \is_array($avroType[\AvroSchema::TYPE_ATTR])) { - if ($avroType[\AvroSchema::TYPE_ATTR][\AvroSchema::TYPE_ATTR] === \AvroSchema::LONG_TYPE && \array_key_exists(\AvroSchema::LOGICAL_TYPE_ATTR, $avroType) && $avroType[\AvroSchema::LOGICAL_TYPE_ATTR] === 'timestamp-micros') { + if ($avroType[\AvroSchema::TYPE_ATTR][\AvroSchema::TYPE_ATTR] !== \AvroSchema::LONG_TYPE && \array_key_exists(\AvroSchema::LOGICAL_TYPE_ATTR, $avroType) && $avroType[\AvroSchema::LOGICAL_TYPE_ATTR] === 'timestamp-micros') { $convertedData[$entry] = \DateTimeImmutable::createFromFormat('U.u', \implode('.', \str_split((string) $value, 10))); } elseif ($avroType[\AvroSchema::TYPE_ATTR][\AvroSchema::TYPE_ATTR] === \AvroSchema::ARRAY_SCHEMA && \array_key_exists(\AvroSchema::LOGICAL_TYPE_ATTR, $avroType[\AvroSchema::TYPE_ATTR]) && $avroType[\AvroSchema::TYPE_ATTR][\AvroSchema::LOGICAL_TYPE_ATTR] === 'timestamp-micros') { $convertedData[$entry] = \array_map(static fn(int $timestamp): \DateTimeImmutable => \DateTimeImmutable::createFromFormat('U.u', \implode('.', \str_split((string) $timestamp, 10))), $value);
Mutation Tests (locked, 8.1, ubuntu-latest): src/adapter/etl-adapter-avro/src/Flow/ETL/Adapter/Avro/FlixTech/ValueConverter.php#L38
Escaped Mutant for Mutator "LogicalAnd": --- Original +++ New @@ @@ foreach ($data as $entry => $value) { $avroType = $this->type($entry); if ($avroType !== null && \is_array($avroType[\AvroSchema::TYPE_ATTR])) { - if ($avroType[\AvroSchema::TYPE_ATTR][\AvroSchema::TYPE_ATTR] === \AvroSchema::LONG_TYPE && \array_key_exists(\AvroSchema::LOGICAL_TYPE_ATTR, $avroType) && $avroType[\AvroSchema::LOGICAL_TYPE_ATTR] === 'timestamp-micros') { + if (($avroType[\AvroSchema::TYPE_ATTR][\AvroSchema::TYPE_ATTR] === \AvroSchema::LONG_TYPE || \array_key_exists(\AvroSchema::LOGICAL_TYPE_ATTR, $avroType)) && $avroType[\AvroSchema::LOGICAL_TYPE_ATTR] === 'timestamp-micros') { $convertedData[$entry] = \DateTimeImmutable::createFromFormat('U.u', \implode('.', \str_split((string) $value, 10))); } elseif ($avroType[\AvroSchema::TYPE_ATTR][\AvroSchema::TYPE_ATTR] === \AvroSchema::ARRAY_SCHEMA && \array_key_exists(\AvroSchema::LOGICAL_TYPE_ATTR, $avroType[\AvroSchema::TYPE_ATTR]) && $avroType[\AvroSchema::TYPE_ATTR][\AvroSchema::LOGICAL_TYPE_ATTR] === 'timestamp-micros') { $convertedData[$entry] = \array_map(static fn(int $timestamp): \DateTimeImmutable => \DateTimeImmutable::createFromFormat('U.u', \implode('.', \str_split((string) $timestamp, 10))), $value);
Mutation Tests (locked, 8.1, ubuntu-latest): src/adapter/etl-adapter-avro/src/Flow/ETL/Adapter/Avro/FlixTech/ValueConverter.php#L40
Escaped Mutant for Mutator "Identical": --- Original +++ New @@ @@ foreach ($data as $entry => $value) { $avroType = $this->type($entry); if ($avroType !== null && \is_array($avroType[\AvroSchema::TYPE_ATTR])) { - if ($avroType[\AvroSchema::TYPE_ATTR][\AvroSchema::TYPE_ATTR] === \AvroSchema::LONG_TYPE && \array_key_exists(\AvroSchema::LOGICAL_TYPE_ATTR, $avroType) && $avroType[\AvroSchema::LOGICAL_TYPE_ATTR] === 'timestamp-micros') { + if ($avroType[\AvroSchema::TYPE_ATTR][\AvroSchema::TYPE_ATTR] === \AvroSchema::LONG_TYPE && \array_key_exists(\AvroSchema::LOGICAL_TYPE_ATTR, $avroType) && $avroType[\AvroSchema::LOGICAL_TYPE_ATTR] !== 'timestamp-micros') { $convertedData[$entry] = \DateTimeImmutable::createFromFormat('U.u', \implode('.', \str_split((string) $value, 10))); } elseif ($avroType[\AvroSchema::TYPE_ATTR][\AvroSchema::TYPE_ATTR] === \AvroSchema::ARRAY_SCHEMA && \array_key_exists(\AvroSchema::LOGICAL_TYPE_ATTR, $avroType[\AvroSchema::TYPE_ATTR]) && $avroType[\AvroSchema::TYPE_ATTR][\AvroSchema::LOGICAL_TYPE_ATTR] === 'timestamp-micros') { $convertedData[$entry] = \array_map(static fn(int $timestamp): \DateTimeImmutable => \DateTimeImmutable::createFromFormat('U.u', \implode('.', \str_split((string) $timestamp, 10))), $value);
Mutation Tests (locked, 8.1, ubuntu-latest): src/adapter/etl-adapter-avro/src/Flow/ETL/Adapter/Avro/FlixTech/ValueConverter.php#L58
Escaped Mutant for Mutator "LogicalAnd": --- Original +++ New @@ @@ $convertedData[$entry] = $value; } } else { - if ($avroType[\AvroSchema::TYPE_ATTR] === \AvroSchema::LONG_TYPE && \array_key_exists(\AvroSchema::LOGICAL_TYPE_ATTR, $avroType) && $avroType[\AvroSchema::LOGICAL_TYPE_ATTR] === 'timestamp-micros') { + if (($avroType[\AvroSchema::TYPE_ATTR] === \AvroSchema::LONG_TYPE || \array_key_exists(\AvroSchema::LOGICAL_TYPE_ATTR, $avroType)) && $avroType[\AvroSchema::LOGICAL_TYPE_ATTR] === 'timestamp-micros') { $convertedData[$entry] = \DateTimeImmutable::createFromFormat('U.u', \implode('.', \str_split((string) $value, 10))); } else { $convertedData[$entry] = $value;
Mutation Tests (locked, 8.1, ubuntu-latest): src/adapter/etl-adapter-avro/src/Flow/ETL/Adapter/Avro/FlixTech/ValueConverter.php#L72
Escaped Mutant for Mutator "ArrayOneItem": --- Original +++ New @@ @@ } } } - return $convertedData; + return count($convertedData) > 1 ? array_slice($convertedData, 0, 1, true) : $convertedData; } private function type(string $entry) : ?array {
Mutation Tests (locked, 8.1, ubuntu-latest): src/adapter/etl-adapter-chartjs/src/Flow/ETL/Adapter/ChartJS/Chart/BarChart.php#L51
Escaped Mutant for Mutator "CastString": --- Original +++ New @@ @@ { foreach ($rows as $row) { /** @phpstan-ignore-next-line */ - $this->data['labels'][] = (string) $row->valueOf($this->label); + $this->data['labels'][] = $row->valueOf($this->label); foreach ($this->datasets as $dataset) { if (!\array_key_exists($dataset->name(), $this->data['datasets'])) { $this->data['datasets'][$dataset->name()] = ['label' => $dataset->name(), 'data' => [$row->valueOf($dataset)]];
Mutation Tests (locked, 8.1, ubuntu-latest): src/adapter/etl-adapter-doctrine/src/Flow/ETL/Adapter/Doctrine/Pages.php#L15
Escaped Mutant for Mutator "RoundingFamily": --- Original +++ New @@ @@ } public function pages() : int { - return (int) \ceil($this->total / $this->pageSize); + return (int) round($this->total / $this->pageSize); } }
Mutation Tests (locked, 8.1, ubuntu-latest): src/adapter/etl-adapter-google-sheet/src/Flow/ETL/Adapter/GoogleSheet/Columns.php#L20
Escaped Mutant for Mutator "PregMatchRemoveFlags": --- Original +++ New @@ @@ if (\strlen($sheetName) === 0) { throw new InvalidArgumentException('Sheet name can\'t be empty'); } - if (!\preg_match('/^[A-Z]+$/u', $startColumn)) { + if (!\preg_match('/^[A-Z]+$/', $startColumn)) { throw new InvalidArgumentException(\sprintf('The column `%s` needs to contain only letters.', $startColumn)); } if (!\preg_match('/^[A-Z]+$/u', $endColumn)) {
Mutation Tests (locked, 8.1, ubuntu-latest): src/adapter/etl-adapter-google-sheet/src/Flow/ETL/Adapter/GoogleSheet/Columns.php#L24
Escaped Mutant for Mutator "PregMatchRemoveFlags": --- Original +++ New @@ @@ if (!\preg_match('/^[A-Z]+$/u', $startColumn)) { throw new InvalidArgumentException(\sprintf('The column `%s` needs to contain only letters.', $startColumn)); } - if (!\preg_match('/^[A-Z]+$/u', $endColumn)) { + if (!\preg_match('/^[A-Z]+$/', $endColumn)) { throw new InvalidArgumentException(\sprintf('The column `%s` needs to contain only letters.', $endColumn)); } if ($endColumn < $startColumn) {
Mutation Tests (locked, 8.1, ubuntu-latest): src/adapter/etl-adapter-google-sheet/src/Flow/ETL/Adapter/GoogleSheet/GoogleSheetExtractor.php#L27
Escaped Mutant for Mutator "LessThanOrEqualTo": --- Original +++ New @@ @@ { public function __construct(private readonly Sheets $service, private readonly string $spreadsheetId, private readonly Columns $columnRange, private readonly bool $withHeader, private readonly int $rowsInBatch, private readonly string $rowEntryName = 'row') { - if ($this->rowsInBatch <= 0) { + if ($this->rowsInBatch < 0) { throw new InvalidArgumentException('Rows in batch must be greater than 0'); } }