2026-06-19 05:23:45 +00:00
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
it('uses at least sixteen pixel form controls on mobile to prevent input focus zoom', function (string $stylesheet) {
|
|
|
|
|
$css = file_get_contents(dirname(__DIR__, 2).'/'.$stylesheet);
|
2026-08-05 19:24:25 +00:00
|
|
|
$baseLayerStart = strpos($css, '@layer base {');
|
|
|
|
|
$mobileRuleStart = strpos($css, '@media (max-width: 767px)');
|
2026-06-19 05:23:45 +00:00
|
|
|
|
2026-08-05 19:24:25 +00:00
|
|
|
expect($baseLayerStart)->not->toBeFalse()
|
|
|
|
|
->and($mobileRuleStart)->toBeGreaterThan($baseLayerStart)
|
|
|
|
|
->and(substr_count(substr($css, $baseLayerStart, $mobileRuleStart - $baseLayerStart), '{'))
|
|
|
|
|
->toBeGreaterThan(substr_count(substr($css, $baseLayerStart, $mobileRuleStart - $baseLayerStart), '}'))
|
|
|
|
|
->and($css)->toContain(':root input,')
|
|
|
|
|
->and($css)->toContain(':root textarea,')
|
|
|
|
|
->and($css)->toContain(':root select')
|
|
|
|
|
->and($css)->toContain('font-size: 16px !important;');
|
chore(v5): archive V5 implementation and remove runtime integration
Move V5 source, migrations, UI, scripts, and tests into documentation, then remove V5 routes, models, jobs, configuration, dependencies, and application hooks.
2026-08-15 17:13:30 +00:00
|
|
|
})->with(['resources/css/app.css']);
|
2026-06-19 05:23:45 +00:00
|
|
|
|
|
|
|
|
it('keeps user zoom enabled in the viewport meta tags', function () {
|
chore(v5): archive V5 implementation and remove runtime integration
Move V5 source, migrations, UI, scripts, and tests into documentation, then remove V5 routes, models, jobs, configuration, dependencies, and application hooks.
2026-08-15 17:13:30 +00:00
|
|
|
$layouts = ['resources/views/layouts/base.blade.php'];
|
2026-06-19 05:23:45 +00:00
|
|
|
|
|
|
|
|
foreach ($layouts as $layout) {
|
|
|
|
|
expect(file_get_contents(dirname(__DIR__, 2).'/'.$layout))
|
|
|
|
|
->not->toContain('maximum-scale')
|
|
|
|
|
->not->toContain('user-scalable=no');
|
|
|
|
|
}
|
|
|
|
|
});
|