Skip to content

Commit 6ee947d

Browse files
author
Brian Chen
authored
add regression tests to support primitive values in conveters (#5698)
1 parent 532b3cd commit 6ee947d

File tree

1 file changed

+37
-0
lines changed

1 file changed

+37
-0
lines changed

packages/firestore/test/lite/integration.test.ts

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1249,6 +1249,43 @@ describe('withConverter() support', () => {
12491249
});
12501250
});
12511251

1252+
it('supports primitive types with valid converter', () => {
1253+
type Primitive = number;
1254+
const primitiveConverter = {
1255+
toFirestore(value: Primitive): DocumentData {
1256+
return { value };
1257+
},
1258+
fromFirestore(snapshot: QueryDocumentSnapshot): Primitive {
1259+
const data = snapshot.data();
1260+
return data.value;
1261+
}
1262+
};
1263+
1264+
type ArrayValue = number[];
1265+
const arrayConverter = {
1266+
toFirestore(value: ArrayValue): DocumentData {
1267+
return { values: value };
1268+
},
1269+
fromFirestore(snapshot: QueryDocumentSnapshot): ArrayValue {
1270+
const data = snapshot.data();
1271+
return data.values;
1272+
}
1273+
};
1274+
1275+
return withTestDb(async db => {
1276+
const coll = collection(db, 'tests');
1277+
const ref = doc(coll, 'number').withConverter(primitiveConverter);
1278+
await setDoc(ref, 3);
1279+
const result = await getDoc(ref);
1280+
expect(result.data()).to.equal(3);
1281+
1282+
const ref2 = doc(coll, 'array').withConverter(arrayConverter);
1283+
await setDoc(ref2, [1, 2, 3]);
1284+
const result2 = await getDoc(ref2);
1285+
expect(result2.data()).to.deep.equal([1, 2, 3]);
1286+
});
1287+
});
1288+
12521289
describe('types test', () => {
12531290
class TestObject {
12541291
constructor(

0 commit comments

Comments
 (0)