improved questionnaire editor glass scales
Some checks failed
PHPUnit / test (push) Has been cancelled

This commit is contained in:
2026-06-06 16:28:10 +02:00
parent d68b2b267d
commit e5ae48c02e
7 changed files with 388 additions and 30 deletions

View File

@ -53,4 +53,48 @@ final class CommonHelpersTest extends TestCase
$this->assertSame('moderate', qdb_glass_symptom_answer_value($json, 'pain'));
$this->assertSame('', qdb_glass_symptom_answer_value($json, 'missing'));
}
public function testApplyGlassSymptomsConfig(): void
{
$config = ['scaleType' => 'glass'];
$rows = [
['key' => 'pain', 'labelDe' => 'Schmerz'],
['key' => 'fatigue', 'labelDe' => 'Müdigkeit'],
];
$out = qdb_apply_glass_symptoms_config($config, $rows);
$this->assertSame(['pain', 'fatigue'], $out['symptoms']);
$this->assertSame('glass', $out['scaleType']);
}
public function testApplyGlassSymptomsConfigClearsWhenEmpty(): void
{
$config = ['symptoms' => ['old_key'], 'scaleType' => 'thermometer'];
$out = qdb_apply_glass_symptoms_config($config, []);
$this->assertArrayNotHasKey('symptoms', $out);
}
public function testParseGlassSymptomsBody(): void
{
$body = [
'glassSymptoms' => [
['key' => 'pain', 'labelDe' => 'Schmerz'],
['key' => 'invalid key', 'labelDe' => 'x'],
],
];
$rows = qdb_parse_glass_symptoms_body($body, []);
$this->assertSame([
['key' => 'pain', 'labelDe' => 'Schmerz'],
['key' => 'invalid_key', 'labelDe' => 'x'],
], $rows);
}
public function testParseGlassSymptomsBodyFromConfigWhenMissing(): void
{
$config = ['symptoms' => ['fatigue', 'pain']];
$rows = qdb_parse_glass_symptoms_body([], $config);
$this->assertSame([
['key' => 'fatigue', 'labelDe' => ''],
['key' => 'pain', 'labelDe' => ''],
], $rows);
}
}