jeudi 5 novembre 2020

Mocking fire functions config - not picking up stripe key

I am using firefunctions. It works for deploy, but now I have written unit tests. and it says:

functions.config().stripe.secret;// ( Cannot read property 'secret' of undefined)

I understand that for tests you need to set up a mockConfig.

I use a config.ts to configure my functions (which is where the error is occurring)

import * as functions from 'firebase-functions';
import * as admin from 'firebase-admin';
admin.initializeApp();

//init cloud firestore db
export const db = admin.firestore();
const settings = { timestampsInSnapshots: true };
db.settings(settings)

console.log(functions.config().stripe);
export const stripeSecret = functions.config().stripe.secret;


import Stripe from 'stripe';
export const stripe = new Stripe(stripeSecret, {
    apiVersion: '2020-08-27',
  });

For testing, I have a test-config.ts which I reference in my unit test like this:

import { fun } from './test-config';
fun.cleanup;

In my test-config.ts I have this (sensitive info redacted)

import TestFunctions from 'firebase-functions-test';
const firebaseConfig = {
    apiKey: "...lala...",
    authDomain: "...lala...",
    databaseURL: "...lala...",
    projectId: "...lala...",
    storageBucket: "...lala...",
    messagingSenderId: "...lala...",
    appId: "...lala...",
    measurementId: "...lala..."}

const envConfig = { stripe : { secret : 'sk_test...lalala...' }};

const fun = TestFunctions(firebaseConfig, 'service-account.json');
fun.mockConfig(envConfig);


export { fun }

Any ideas why my config in the tests is not being picked up. I am using jest.

Thank you, Christopher

Aucun commentaire:

Enregistrer un commentaire