UNPKG

firestore-vitest

Version:

Vitest helper for mocking Google Cloud Firestore

64 lines (56 loc) 1.44 kB
const mockGetAll = vi.fn(); const mockGetAllTransaction = vi.fn(); const mockGetTransaction = vi.fn(); const mockSetTransaction = vi.fn(); const mockUpdateTransaction = vi.fn(); const mockDeleteTransaction = vi.fn(); const mockCreateTransaction = vi.fn(); class Transaction { getAll(...refsOrReadOptions) { mockGetAll(...arguments); mockGetAllTransaction(...arguments); // TODO: Assert that read options, if provided, are the last argument // Filter out the read options before calling .get() return Promise.all(refsOrReadOptions.filter(ref => !!ref.get).map(ref => ref.get())); } get(ref) { mockGetTransaction(...arguments); return Promise.resolve(ref._get()); } set(ref) { mockSetTransaction(...arguments); const args = [...arguments]; args.shift(); ref.set(...args); return this; } update(ref) { mockUpdateTransaction(...arguments); const args = [...arguments]; args.shift(); ref.update(...args); return this; } delete(ref) { mockDeleteTransaction(...arguments); ref.delete(); return this; } create(ref, options) { mockCreateTransaction(...arguments); ref.set(options); return this; } } export default { Transaction, mocks: { mockGetAll, mockGetAllTransaction, mockGetTransaction, mockSetTransaction, mockUpdateTransaction, mockDeleteTransaction, mockCreateTransaction, }, };