added glass scale symptoms to translations
Some checks failed
PHPUnit / test (push) Has been cancelled
Some checks failed
PHPUnit / test (push) Has been cancelled
This commit is contained in:
@ -1430,7 +1430,7 @@ function qdb_format_glass_answer_json_display(PDO $pdo, ?string $raw, array &$st
|
|||||||
*/
|
*/
|
||||||
function qdb_translation_entry_lists(PDO $pdo, string $qnID): array {
|
function qdb_translation_entry_lists(PDO $pdo, string $qnID): array {
|
||||||
$qStmt = $pdo->prepare("
|
$qStmt = $pdo->prepare("
|
||||||
SELECT q.questionID, q.defaultText, q.configJson, q.orderIndex
|
SELECT q.questionID, q.defaultText, q.type, q.configJson, q.orderIndex
|
||||||
FROM question q WHERE q.questionnaireID = :id ORDER BY q.orderIndex
|
FROM question q WHERE q.questionnaireID = :id ORDER BY q.orderIndex
|
||||||
");
|
");
|
||||||
$qStmt->execute([':id' => $qnID]);
|
$qStmt->execute([':id' => $qnID]);
|
||||||
|
|||||||
@ -515,6 +515,9 @@ if ($qnID) {
|
|||||||
if (isset($config['hint1'])) $q['hint1'] = $config['hint1'];
|
if (isset($config['hint1'])) $q['hint1'] = $config['hint1'];
|
||||||
if (isset($config['hint2'])) $q['hint2'] = $config['hint2'];
|
if (isset($config['hint2'])) $q['hint2'] = $config['hint2'];
|
||||||
if (isset($config['symptoms'])) $q['symptoms'] = $config['symptoms'];
|
if (isset($config['symptoms'])) $q['symptoms'] = $config['symptoms'];
|
||||||
|
if ($layout === 'glass_scale_question' && !empty($config['symptoms'])) {
|
||||||
|
$q['glassSymptoms'] = qdb_glass_symptoms_with_labels($pdo, $config);
|
||||||
|
}
|
||||||
if (isset($config['scaleType'])) $q['scaleType'] = $config['scaleType'];
|
if (isset($config['scaleType'])) $q['scaleType'] = $config['scaleType'];
|
||||||
if (isset($config['range'])) $q['range'] = $config['range'];
|
if (isset($config['range'])) $q['range'] = $config['range'];
|
||||||
if (isset($config['step'])) $q['step'] = (int)$config['step'];
|
if (isset($config['step'])) $q['step'] = (int)$config['step'];
|
||||||
|
|||||||
@ -27,6 +27,18 @@ final class AppQuestionnairesTest extends QdbTestCase
|
|||||||
]);
|
]);
|
||||||
$this->assertApiOk($res);
|
$this->assertApiOk($res);
|
||||||
$this->assertNotEmpty($res['data']['questions']);
|
$this->assertNotEmpty($res['data']['questions']);
|
||||||
|
|
||||||
|
$glass = null;
|
||||||
|
foreach ($res['data']['questions'] as $q) {
|
||||||
|
if (($q['layout'] ?? '') === 'glass_scale_question') {
|
||||||
|
$glass = $q;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$this->assertNotNull($glass);
|
||||||
|
$this->assertIsArray($glass['glassSymptoms'] ?? null);
|
||||||
|
$symptomKeys = array_column($glass['glassSymptoms'], 'key');
|
||||||
|
$this->assertContains($this->fixture()->glassSymptomKey, $symptomKeys);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testCoachListsAssignedClients(): void
|
public function testCoachListsAssignedClients(): void
|
||||||
|
|||||||
@ -80,4 +80,25 @@ final class TranslationsWriteTest extends QdbTestCase
|
|||||||
}
|
}
|
||||||
$this->assertSame('Oui', $fr);
|
$this->assertSame('Oui', $fr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function testAllTranslationsIncludeGlassSymptomKeys(): void
|
||||||
|
{
|
||||||
|
$token = $this->api()->loginWebAndGetToken(
|
||||||
|
DatabaseSeeder::ADMIN_USERNAME,
|
||||||
|
DatabaseSeeder::PASSWORD
|
||||||
|
)['token'];
|
||||||
|
$f = $this->fixture();
|
||||||
|
|
||||||
|
$res = $this->api()->withToken($token, 'GET', 'translations', null, ['all' => '1']);
|
||||||
|
$this->assertApiOk($res);
|
||||||
|
|
||||||
|
$stringKeys = [];
|
||||||
|
foreach ($res['data']['entries'] as $entry) {
|
||||||
|
if (($entry['type'] ?? '') === 'string') {
|
||||||
|
$stringKeys[] = $entry['key'] ?? '';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$this->assertContains($f->glassSymptomKey, $stringKeys);
|
||||||
|
$this->assertContains('fatigue', $stringKeys);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user