Salut à tous !
Je suis en train de travailler sur une app react native, et je suis en train d'écrire quelques tests avec jest, et j'ai une erreur qui dit que mes variables sont undefined (donc mes tests échouent), mes données existent bien quand je fais un console.log(process.env) mais undefinded quand je les utilise.
J'ai vu plein de solutions plus ou moins farfelues, (du genre mettre en dur les variables dans le package.json) sauf que de mon côté ce sont des données assez sensibles, donc je ne peux pas me permettre de faire ça.
Donc je me demandais comment charger un .env (ou un .env.test)
j'ai cru lire quelque part que l'on pouvait mocker les variables d'environnements, mais je n'ai paas trouvé de solution.
Bonne journée et merci d'avance ;)
Salut,
Tu peux installer dotenv ou react-native-dotenv pour récup tes variables d'env
dans ton fichier jest.setup.js/ts, tu charges tes variables
// jest.setup.js
require('dotenv').config(); ou require('dotenv').config({ path: '.env.test' });
// jest.config.js
pour y avoir acces dans tt les fichiers de test
module.exports = {
setupFiles: ['./jest.setup.js'],
preset: 'react-native',
};
Sinon, tu les charges là où tu en as besoin.
Salut
Merci pour ta réponse, c'est exactement ce que je fais
et j'ai même essayé ça :
"test": "NODE_ENV=test jest --config=jest.config.js",
"test:watch": "NODE_ENV=test jest --config=jest.config.js --watchAll",
const createSupaClient = (url: string, key: string, options: SupabaseClientOptions<"public"> = {}): SupabaseClient => {
options.auth = options.auth || {}
options.auth.persistSession = false
return createClient(url, key, options)
}
const supabase = createSupaClient(process.env.EXPO_PUBLIC_SUPABASE_TEST_URL, process.env.EXPO_PUBLIC_SUPABASE_TEST_ANON_KEY)
j'ai trouvé cette méthode pour load un client supabase
sauf que là ça ne fonctionne pas, EXPO_PUBLIC_SUPABASE_TEST est undefined
alors que
import path from "path"
import dotenv from "dotenv"
dotenv.config({ path: path.resolve(__dirname, ".env.test") })
console.log("Loaded SUPABASE URL:", process.env)
m'affiche bien toutes mes variables (dont celle citées au dessus)