new CheckStep($key, []), [CheckStep::MANIFEST, CheckStep::MIRRORS, CheckStep::CATALOG, CheckStep::FORMAT, CheckStep::WRITE] ); } public function testGreenOnlyWithEveryStepGreenAndNoneSkipped(): void { self::assertTrue(self::report(self::green())->green()); self::assertFalse(self::report([])->green()); $red = self::green(); $red[2] = new CheckStep(CheckStep::CATALOG, ['divi/text: unbekanntes Modul']); self::assertFalse(self::report($red)->green()); $skipped = self::green(); $skipped[4] = new CheckStep(CheckStep::WRITE, [], true); self::assertFalse(self::report($skipped)->green()); } public function testFreshOnlyForTheSameVersionsAndStateKey(): void { $report = self::report(self::green()); self::assertTrue($report->freshFor('5.3.0', '0.6.0', 'key')); self::assertFalse($report->freshFor('5.3.1', '0.6.0', 'key'), 'Divi updated'); self::assertFalse($report->freshFor('5.3.0', '0.7.0', 'key'), 'plugin updated'); self::assertFalse($report->freshFor('5.3.0', '0.6.0', 'other'), 'a Divi file changed'); } public function testRoundTripsThroughAnArray(): void { $steps = self::green(); $steps[1] = new CheckStep(CheckStep::MIRRORS, ['Theme Builder: Nachbau von x() – y']); $report = self::report($steps); self::assertEquals($report, CheckReport::fromArray($report->toArray())); self::assertNull(CheckReport::fromArray('broken')); self::assertNull(CheckReport::fromArray(['id' => 'r1'])); self::assertSame('Fingerabdrücke nachgebauter Divi-Funktionen', $report->step(CheckStep::MIRRORS)?->label()); } }