Een toegestane locatie is slechts één testcase.
Scheid browsertoestemming, gecontroleerde coördinaten en het alternatieve apptraject voordat je dekking claimt.

Vertaalde editie. Technische identificatiegegevens blijven in hun oorspronkelijke vorm.

Een locatiepagina werkt in de test omdat toestemming altijd wordt verleend. De suite kent een handige omgeving, niet de hele ervaring. Zonder bruikbare positie kan iemand blijven wachten of handmatige invoer kwijtraken. Eén geslaagde coördinatenlezing bewijst die alternatieven niet.
Deze gids gebruikt Playwrights emulatiedocumentatie en BrowserContext voor een verzonnen lokale lezer. De coördinaten zijn gecontroleerde invoer, geen huidige locatie van een persoon. Er is geen kaartdienst, bestelling of account. We scheiden toestemming, positie en de reactie bij onbeschikbaarheid.
Toestemming en positie zijn aparte invoer
Geolocatie toestaan definieert geen coördinaten. Coördinaten geven geen toestemming om ze te lezen. Stel beide bewust in een wegwerpcontext in en beperk toestemming tot de bekende oorsprong.
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();Het voorbeeld vereist een lokale server op die oorsprong en Playwrights browser- en expect-fixtures. Nulcoördinaten zijn duidelijke testwaarden, geen bezorgadresadvies. De pagina meldt ontvangen getallen zonder een echte plaats, servicegebied of fysieke nauwkeurigheid af te leiden.
De documentatie waarschuwt dat ondersteunde toestemmingen verschillen per browser en versie. Controleer de exacte engine. Een Chromium-resultaat certificeert geen andere engine, mobiel systeem of fysiek apparaat.
Maak het onbeschikbare pad zichtbaar
setGeolocation(null) is gedocumenteerd als emulatie van een onbeschikbare positie. Gebruik dat in een aparte case en laat de foutcallback Locatie niet beschikbaar met een handmatig veld tonen. De demo heeft een begrensde timeout.
Controleer dat de uitwijkmogelijkheid zichtbaar en bruikbaar is, niet alleen dat de callback liep. De lokale test vult het gebiedsveld met Invented area. Dat bewijst bruikbare invoer na de fout, niet dat een echte dienst dit gebied accepteert.
Noem dit geen weigeringstest. Toestemming met onbeschikbare positie is een andere instelling. Een toestemmingsvraag, beleidsblokkade, ontbrekende sensor en timeout kunnen vergelijkbare interface geven met andere oorzaken. Voeg expliciete weigering toe via een ondersteunde, geverifieerde instelling als het product die vereist.
Reset de context, niet de betekenis
Toestemmingsoverrides horen bij de context. clearPermissions() wist ze, maar bewijst niet dat een persoon weigerde. Gebruik verse contexten voor onafhankelijke scenario's en beschrijf hun invoer.
Neem de echte oorsprong van de demo op in de toestemming. Zonder oorsprong is de grant breder dan nodig. Draag lokale instellingen niet over naar andere sites of een gedeelde ingelogde browser. Een wegwerpcontext maakt grenzen makkelijker te beoordelen.
Een product kan de laatste positie bewaren of eerst handmatige invoer aanbieden. Spreek die verwachtingen af met het team. Een positieve lezing dekt geen oude coördinaten, nauwkeurigheidsdrempels of latere updates.
Beoordeel de uitwijkmogelijkheid als producttraject
Benoem toestemming, onbeschikbaarheid en apart geverifieerde weigering. Beschrijf de volgende actie in elke toestand. Bij beloofde handmatige invoer controleer je label en acceptatie van toegestane testinvoer in de volgende stap.
AnyTest beschrijft verkenning en tests voor menselijke beoordeling. Vraag welke toestemming, coördinaten en uitwijkmogelijkheid worden gebruikt. Geen AnyTest-toestemmings-API of validatie op echte apparaten wordt geclaimd. Nuttige dekking vereist een expliciete omgeving en een serieus alternatief traject.
Veelgestelde vragen
Levert geolocatietoestemming een echte positie?
Nee. Toestemming en gecontroleerde positie zijn aparte invoer; de demo stelt geen fysieke locatie vast.
Is een onbeschikbare positie hetzelfde als weigering?
Nee. Test en benoem oorzaken apart. Overrides wissen bewijst geen expliciete weigering.