Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

237
Vistas
¿Cómo probar un objeto javascript con valor?

Tengo un archivo js donde leo algún valor y cargo los resultados en una variable. el beneficio que obtengo es que no tengo que leer el archivo cada vez que lo necesito. simplemente puedo importar el objeto y usarlo.

sin embargo, no sé cómo escribir una prueba unitaria para ello.

 const fs = require('fs'); const read_file = (path) => { try { const data = fs.readFileSync(path, 'utf8'); return data; } catch (err) { console.error('Error in read_file', err); throw err; } }; const getSecret = secretName => { try { return read_file(`/etc/secrets/${secretName}.txt`); } catch (err){ throw err; } }; const secretConfig = { kafka_keystore_password: getSecret('kafka_keystore_password') }; module.exports = secretConfig;

Yo uso broma para escribir casos de prueba.

He intentado algo como esto, pero aún así el objeto se resuelve como indefinido.

 const secretConfig = require('./secret'); const fs = require('fs'); jest.mock('fs'); fs.readFileSync.mockReturnValue('randomPrivateKey'); describe('secret read files', () => { it('should read secret from file', async () => { const secretMessage = secretConfig.kafka_keystore_password; expect(secretMessage).toEqual('randomPrivateKey'); }) })

archivos de lectura secreta › debe leer el secreto del archivo

 expect(received).toEqual(expected) // deep equality Expected: "randomPrivateKey" Received: undefined 18 | const secretMessage = secretConfig.kafka_keystore_password; 19 | //expect(fs.readFileSync).toHaveBeenCalled(); > 20 | expect(secretMessage).toEqual('randomPrivateKey');
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Su prueba es correcta. El problema es que necesita simular antes de require el módulo ./secret porque el método getSecret se ejecutará inmediatamente cuando se requiera el módulo. En este momento, a fs.readFileSync todavía no se le ha dado un valor simulado.

 const fs = require('fs'); fs.readFileSync.mockReturnValue('randomPrivateKey'); const secretConfig = require('./secret'); jest.mock('fs'); describe('secret read files', () => { it('should read secret from file', async () => { const secretMessage = secretConfig.kafka_keystore_password; expect(secretMessage).toEqual('randomPrivateKey'); }); });

resultado de la prueba:

 > jest "-o" "--coverage" PASS examples/69283738/secret.test.js (7.265 s) secret read files ✓ should read secret from file (2 ms) -----------|---------|----------|---------|---------|------------------- File | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s -----------|---------|----------|---------|---------|------------------- All files | 76.92 | 100 | 100 | 76.92 | secret.js | 76.92 | 100 | 100 | 76.92 | 8-9,17 -----------|---------|----------|---------|---------|------------------- Test Suites: 1 passed, 1 total Tests: 1 passed, 1 total Snapshots: 0 total Time: 7.794 s
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda