✨ Story 5.3: persistance localStorage
This commit is contained in:
31
tests/contact-state.test.php
Normal file
31
tests/contact-state.test.php
Normal file
@@ -0,0 +1,31 @@
|
||||
<?php
|
||||
function assertTrue($cond, $msg) {
|
||||
if (!$cond) {
|
||||
fwrite(STDERR, $msg . PHP_EOL);
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
$statePath = __DIR__ . '/../assets/js/state.js';
|
||||
assertTrue(file_exists($statePath), 'missing state.js');
|
||||
$stateContent = file_get_contents($statePath);
|
||||
|
||||
assertTrue(strpos($stateContent, 'const AppState') !== false, 'missing AppState');
|
||||
assertTrue(strpos($stateContent, 'portfolio_contact_form') !== false, 'missing storage key');
|
||||
assertTrue(strpos($stateContent, 'EXCLUDED_FIELDS') !== false, 'missing excluded fields');
|
||||
assertTrue(strpos($stateContent, 'csrf_token') !== false, 'missing csrf exclusion');
|
||||
assertTrue(strpos($stateContent, 'password') !== false, 'missing password exclusion');
|
||||
assertTrue(strpos($stateContent, 'recaptcha_token') !== false, 'missing recaptcha exclusion');
|
||||
assertTrue(strpos($stateContent, 'isStorageAvailable') !== false, 'missing isStorageAvailable');
|
||||
assertTrue(strpos($stateContent, 'saveFormData') !== false, 'missing saveFormData');
|
||||
assertTrue(strpos($stateContent, 'getFormData') !== false, 'missing getFormData');
|
||||
assertTrue(strpos($stateContent, 'clearFormData') !== false, 'missing clearFormData');
|
||||
|
||||
$contactJs = file_get_contents(__DIR__ . '/../assets/js/contact-form.js');
|
||||
assertTrue(strpos($contactJs, 'class ContactFormPersistence') !== false, 'missing ContactFormPersistence');
|
||||
assertTrue(strpos($contactJs, 'formSuccess') !== false, 'missing formSuccess listener');
|
||||
assertTrue(preg_match('/setTimeout\([^,]+,\s*500\)/', $contactJs) === 1, 'missing debounce 500ms');
|
||||
assertTrue(strpos($contactJs, 'clear-form-btn') !== false, 'missing clear button hook');
|
||||
assertTrue(strpos($contactJs, 'confirm(') !== false, 'missing confirm');
|
||||
|
||||
fwrite(STDOUT, "OK\n");
|
||||
Reference in New Issue
Block a user