CluPilotCloud/tests/Feature/OperatingModeTest.php

35 lines
1.1 KiB
PHP

<?php
use App\Support\OperatingMode;
use App\Support\Settings;
/**
* Der Modus entscheidet, welche Zugangsdaten gelten. Er wird an genau einer
* Stelle gelesen, damit nirgends sonst ein String verglichen wird — ein
* Tippfehler in einem Vergleich wäre sonst ein stiller Wechsel auf Live.
*/
it('is live when nothing has been stored', function () {
expect(OperatingMode::current())->toBe(OperatingMode::Live);
});
it('reads the stored mode', function () {
Settings::set('platform.mode', 'test');
expect(OperatingMode::current())->toBe(OperatingMode::Test);
});
it('falls back to live when the stored value is not a mode', function () {
// Eine Zeile, die von Hand oder von einer alten Fassung geschrieben wurde.
// Live ist die sichere Richtung: eine echte Zahlung wird korrekt behandelt,
// ein Testereignis scheitert laut.
Settings::set('platform.mode', 'staging');
expect(OperatingMode::current())->toBe(OperatingMode::Live);
});
it('writes the mode and takes effect immediately', function () {
OperatingMode::set(OperatingMode::Test);
expect(OperatingMode::current())->toBe(OperatingMode::Test);
});