firebase / firebase/quickstart-testing

example code passes incorrectly

Offen
#334 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
Vorherrschende Sprache
JavaScript
Sterne
368
Forks
125
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

The function, expectPermissionGetSucceeds, can pass when it shouldn't.

https://github.com/firebase/quickstart-testing/blob/6ac0acf396e87e2588223151e8f0b4cf307a5e84/unit-test-security-rules-v9/test/utils.ts#L61

If your READ permissions return a PERMISSION_DENIED, then the getDoc promise will return the error code. however since this only expects that promise.not.toBeUndefined, then the error code meets that criteria.

I fixed locally by just adding the second check to make sure that the error code != PERMISSION_DENIED

```
export async function expectPermissionGetSucceeds(promise: Promise) {
const successResult = await assertSucceeds(promise);
expect(successResult).not.toBeUndefined();
expect(successResult.code).not.toBe('permission-denied' || 'PERMISSION_DENIED');
}
```

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Der betroffene Einstiegspunkt ist expectPermissionGetSucceeds in test/utils.ts in der verlinkten Zeile. Lies nach, wie assertSucceeds und getDoc Ergebnisse mit verweigerter Berechtigung darstellen, und reproduziere anschließend den Fall mit verweigertem READ. Erledigt ist die Aufgabe, wenn der Helper fehlschlägt, statt zu bestehen, wenn der Lesevorgang PERMISSION_DENIED zurückgibt.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
firebase, typescript
Bereich
security, testing
Issue-Typ
Bug
Schwierigkeit
2/5
Geschätzter Aufwand
1-3 Stunden
Aktivitätsstatus
Veraltet
Klarheit
Klar beschrieben
Anfängerfreundlichkeit
48/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.