Problemas con los valores UINT al probar con mocha/chai

Estoy probando en este momento algunos contratos inteligentes con trufa (mocha/chai/chai-as-promised) y tengo el siguiente problema:

Tengo un getter, y este getter entrega un valor UINT, luego cuando trato de probar el valor con instance.getMemberCount().should.eventually.equal(4)el resultado es: expected { Object (s, e, ...) } to equal 4.

Un hecho interesante es que cuando trato de comparar los valores directamente con '==' no hay problema ... (por ejemplo assert.equal(instance.getMemberCount() == 4):)

¿Mocha/Chai tiene problemas para transformar los valores de uint?

getMemberCount().toNumber() ? quizás
@ВиталийШвецов: ¿no hay toNumber() en JavaScript o estoy equivocado? Lo he intentado con Number(), parseInt() - pero el resultado es NaN, porque tenemos 'promesa de objeto' y todavía estoy atascado...
@val3ri Web3 tiene un BigNumberobjeto que tiene una extensión toNumber. ethereumbuilders.gitbooks.io/guide/content/en/… ver "web3.toBigNumber"

Respuestas (1)

Puede usar .valueOf() para obtener el valor de retorno de la función getter.

He usado esto en uno de los casos de prueba que escribí hace algún tiempo.

Puedes echar un vistazo a esto como referencia.

Espero que esto ayude.

¡Gracias por el enlace del repositorio de github, buscaré respuestas allí! Con .valueOf() el resultado es: [promesa de objeto]. Y después de imprimir el resultado es: { [String: '4'] s: 1, e: 0, c: [ 4 ] }. JavaScript está convirtiendo de alguna manera este objeto y la comparación con "==" funciona.