Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

161
Views
Stubbing con sinon y prueba con chai

Estoy en el proceso de aprender a probar con Mocha y Chai, y tengo una pregunta sobre la creación de una función. Estoy tratando de agregar una función que mapea una matriz y la devuelve en formato CSV. Sin embargo, mis pruebas están fallando con el siguiente mensaje:

ReferenceError: firstName no está definido

Lo que entiendo significa que la prueba no puede encontrarlo, pero realmente no entiendo por qué, ya que siento que lo he declarado. Cualquier ayuda o señalarme en la dirección correcta sería útil. Mi código y prueba estarán debajo:

 export default ({ teamId, allApproverUserItemsForTeam = defaultAllApproverUserItemsForTeam, }) => { const teamApprovers = allApproverUserItemsForTeam({ teamId }); const csvContent = teamApprovers.map(teamApprover => `${teamApprover.firstName}, ${teamApprover.lastName}, ${teamApprover.emailAddress}`, ); const joinedApproversList = csvContent.join(); return joinedApproversList; };
 describe('create_team_approvers_csv_test', () => { describe('given a teamId for a team that has a list of approvers', () => { const teamId = randoms.randomId(); const allApproverUserItemsForTeam = sinon.stub(); const approversForTeam = [ { id: 'fwwfw', emailAddress: 'joe@bloggs.com', firstName: 'Joe', lastName: 'Bloggs', title: 'Mr', isTeamProfile: false, version: 1, }, { id: 'wgerher6446', emailAddress: 'jane@doe.com', firstName: 'Jane', lastName: 'Doe', title: 'Mrs', isTeamProfile: false, version: 3, }, ]; allApproverUserItemsForTeam.withArgs({ teamId }).returns(approversForTeam); it('should create a list of approvers in a required CSV format', () => { const expected = { firstName, lastName, emailAddress, }; const result = createTeamApproversCsv({ teamId }); expect(result).to.be.deep.equal(expected); }); }); });
about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Tal vez sea un error tipográfico. No pasó la función allApproverUserItemsForTeam agregada a la función createTeamApproversCsv .

P.ej

index.ts :

 //@ts-nocheck const defaultAllApproverUserItemsForTeam = ({ teamId }) => { return []; }; export default ({ teamId, allApproverUserItemsForTeam = defaultAllApproverUserItemsForTeam }) => { const teamApprovers = allApproverUserItemsForTeam({ teamId }); const csvContent = teamApprovers.map( (teamApprover) => `${teamApprover.firstName}, ${teamApprover.lastName}, ${teamApprover.emailAddress}`, ); const joinedApproversList = csvContent.join(); return joinedApproversList; };

index.test.ts :

 import createTeamApproversCsv from '.'; import { expect } from 'chai'; import sinon from 'sinon'; describe('create_team_approvers_csv_test', () => { describe('given a teamId for a team that has a list of approvers', () => { const teamId = '123'; const allApproverUserItemsForTeam = sinon.stub(); const approversForTeam = [ { id: 'fwwfw', emailAddress: 'joe@bloggs.com', firstName: 'Joe', lastName: 'Bloggs', title: 'Mr', isTeamProfile: false, version: 1, }, { id: 'wgerher6446', emailAddress: 'jane@doe.com', firstName: 'Jane', lastName: 'Doe', title: 'Mrs', isTeamProfile: false, version: 3, }, ]; allApproverUserItemsForTeam.withArgs({ teamId }).returns(approversForTeam); it('should create a list of approvers in a required CSV format', () => { const expected = ['Joe, Bloggs, joe@bloggs.com', 'Jane, Doe, jane@doe.com'].join(); const result = createTeamApproversCsv({ teamId, allApproverUserItemsForTeam }); expect(result).to.be.deep.equal(expected); }); }); });

resultado de la prueba:

 create_team_approvers_csv_test given a teamId for a team that has a list of approvers ✓ should create a list of approvers in a required CSV format 1 passing (5ms) ----------|---------|----------|---------|---------|------------------- File | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s ----------|---------|----------|---------|---------|------------------- All files | 87.5 | 0 | 66.67 | 87.5 | index.ts | 87.5 | 0 | 66.67 | 87.5 | 3 ----------|---------|----------|---------|---------|-------------------
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!