QA The Other WayЗабезпечення якості в епоху тестів, написаних ШІ. QA The Other Way.
Практичне QA

Дозволена геолокація - лише один тестовий випадок.

Розділіть дозвіл браузера, задані координати та резервний шлях застосунку перед заявою про покриття.

6 хв. читанняQA The Other Way
Авторська схема дозволу й координат з окремим ручним введенням за недоступності.
Авторська редакційна ілюстрація.
Ілюстративне відео до цієї статті. англійський текст на екрані; вибрати субтитри для цієї мови.

Перекладне видання. Технічні ідентифікатори залишаються в оригінальній формі.

Розділіть дозвіл браузера, задані координати та резервний шлях застосунку перед заявою про покриття.
Локальна демонстрація з вигаданими даними, не інтерфейс клієнта чи постачальника.

Сторінка геолокації працює в тесті, бо дозвіл завжди надано. Набір знає зручне середовище, не весь досвід. Без придатної позиції людина може залишитися в очікуванні чи втратити ручний ввід. Успішне читання координат не доводить ці резервні шляхи.

Посібник використовує документацію емуляції Playwright і BrowserContext для вигаданого локального читача. Координати контрольовані, не поточне місце людини. Немає картографічного сервісу, замовлення чи акаунта. Розділено дозвіл, позицію та відповідь інтерфейсу за недоступності.

Дозвіл і позиція - окремі входи

Дозвіл геолокації не задає координат. Задані координати не дозволяють їх читати. Налаштуйте обидва параметри в одноразовому контексті й обмежте дозвіл відомим джерелом сторінки.

const context = await browser.newContext({
  geolocation: { latitude: 0, longitude: 0 }
});
await context.grantPermissions(['geolocation'], {
  origin: 'http://localhost:4179'
});
const page = await context.newPage();
await page.goto('http://localhost:4179/');
await page.getByRole('button', { name: 'Read demo location' }).click();
await expect(page.getByRole('status')).toHaveText('Demo coordinates: 0, 0');
await context.close();

Приклад потребує локального сервера за цим origin і фікстур browser та expect Playwright. Нулі означають очевидні тестові дані, не рекомендовану адресу доставки. Сторінка показує отримані числа без висновків про місце, зону обслуговування чи фізичну точність.

Документація попереджає про різні дозволи між браузерами та версіями. Перевірте конкретний рушій. Результат Chromium не сертифікує інший рушій, мобільну систему чи фізичний пристрій.

Зробіть недоступність спостережуваною

API описує setGeolocation(null) як емуляцію недоступної позиції. В окремому випадку застосуйте її та покажіть через обробник помилки Позиція недоступна і ручне поле. Очікування в прикладі обмежене.

Перевірте видимість і придатність резервного вводу, не лише виклик обробника. Локальний тест вводить Invented area. Це доводить використання поля після помилки, не прийняття зони справжнім сервісом.

Не називайте це відмовою людини. Наданий дозвіл із недоступною позицією - інша конфігурація. Запит дозволу, обмеження політики, відсутній датчик і тайм-аут можуть давати схожий інтерфейс з різних причин. За потреби додайте явну відмову через підтримуване й перевірене налаштування.

Скидайте контекст, не зміст випадку

Перевизначення дозволів належать контексту. clearPermissions() очищує їх, але не доводить відмови людини. Для незалежних сценаріїв використовуйте свіжі контексти та описуйте входи.

Вкажіть справжній origin прикладу. Без нього дозвіл ширший за необхідний. Не переносіть локальні налаштування на інший сайт чи спільний авторизований браузер. Одноразовий контекст спрощує перевірку меж.

Продукт може зберігати останню позицію чи пропонувати ручне введення до запиту дозволу. Узгодьте очікування з командою. Позитивне читання не охоплює застарілих координат, порогів точності чи наступних оновлень.

Перевіряйте резервний шлях як продуктовий сценарій

Назвіть випадки дозволу, недоступності й окремо перевіреної відмови. Вкажіть наступну дію кожного стану. Якщо обіцяно ручний ввід, перевірте мітку та прийняття дозволених тестових даних наступним кроком.

AnyTest описує дослідження і тести для людського огляду. Запитайте про дозвіл, координати та резервний шлях. API дозволів AnyTest чи перевірка фізичних пристроїв не заявляються. Корисне покриття потребує явного середовища й повноцінного резервного сценарію.

Загальні запитання

Чи надає дозвіл геолокації реальну позицію?

Ні. Дозвіл і задана позиція - різні входи; приклад не встановлює фізичного місця.

Чи недоступна позиція дорівнює відмові людини?

Ні. Перевіряйте й називайте причини окремо. Очищення перевизначень не доводить явної відмови.

Джерела