firebase / firebase/quickstart-testing
example code passes incorrectly
- 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
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