tengo la siguiente función JS simple que devuelve un objeto
async create(o: Order): Promise<Order> { try { const conn = await client.connect(); const checkActiveQuery = "SELECT id FROM orders WHERE userId = $1 AND currentStatus = $2;"; const checkActiveQueryRes = await conn.query(checkActiveQuery, [o.userId, o.currentStatus,]); if (checkActiveQueryRes.rows[0]) { console.log('True Already Existed Active order') conn.release(); throw new Error('an active order for this user already exists'); } else { console.log('started to failllllll here') const sql = 'INSERT INTO orders (userId, currentStatus) VALUES ($1, $2) RETURNING *;'; const result = await conn.query(sql, [o.userId, o.currentStatus]); conn.release(); const order = result.rows[0]; console.log('new order has: ' + order) console.log(order) console.log(order.id) return (order); } } catch (err) { throw new Error(`Cannot create order: ${err}`); }}mientras trato de probarlo usando las especificaciones de jazmín de la siguiente manera
it('create method should add an order', async () => { const order: Order = await orderStore.create({userId: 1, currentStatus: 'active'}) expect(order).toEqual({id: 1, userId: 1, currentStatus: 'active',}) })Recibí el siguiente error de consola de la especificación misma como si no viera resultados
El método de creación del método de modelo de pedido debe agregar un pedido
- Expected object to have properties userId: 1 currentStatus: 'active' Expected object not to have properties userid: '1' currentstatus: 'active'Si bien hice la función para devolver tres tipos de objetos result.rows[0] como se devuelve aquí en la consola
new order has: [object Object] ==> order object var in console.log('new or...' + order) { id: 1, userid: null, currentstatus: null } ==> order object in console.log(order) 1 ==> picked up order.id¿Cuál es la diferencia entre las dos primeras líneas de la variable de orden y por qué no tiene explícitamente las mismas propiedades que se muestran en la consola y qué hacer para que esta prueba sea exitosa? Cualquier ayuda, se lo agradecería.