How to use the deepEqual function from chai

Find comprehensive JavaScript chai.deepEqual code examples handpicked from public code repositorys.

chai.deepEqual is a function in the chai assertion library that checks whether two JavaScript objects are deeply equal, including their nested properties.

0
1
2
3
4
5
6
7
8
9
10
const letterPositions = require('../letterPositions');
const assert = require("chai").assert;


describe('#letterPositions', () => {
  it('Should return an object with the indices of each letter in the input string', () => {
    assert.deepEqual(letterPositions('hello'), { h: [0], e: [1], l: [2, 3], o: [4] });
  });
  
  it('Should return the correct indices for a given letter.', () => {
    assert.deepEqual(letterPositions('hello')['h'], [0]);
fork icon0
star icon0
watch icon1

+ 5 other calls in file

How does chai.deepEqual work?

chai.deepEqual is a function provided by the chai assertion library that allows you to check whether two JavaScript objects are deeply equal, including their nested properties. To use chai.deepEqual, you pass in two arguments: the first argument is the object you want to test, and the second argument is the object you want to compare it to. The function returns a boolean value indicating whether the objects are deeply equal. When testing objects for deep equality, chai.deepEqual will compare each property of the objects recursively. This means that even if the objects have nested properties or arrays, chai.deepEqual will check the values of those properties and arrays to determine whether the objects are equal. chai.deepEqual is one of many assertion functions provided by the chai library that simplify testing in JavaScript. It is particularly useful when you need to compare the values of complex objects or data structures in your code.

Ai Example

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
const { expect } = require("chai");

const obj1 = {
  name: "Alice",
  age: 30,
  address: {
    street: "123 Main St",
    city: "Anytown",
    state: "CA",
    zip: "12345",
  },
};

const obj2 = {
  name: "Alice",
  age: 30,
  address: {
    street: "123 Main St",
    city: "Anytown",
    state: "CA",
    zip: "12345",
  },
};

expect(obj1).to.deep.equal(obj2);

In this example, we first import the expect function from the chai library and define two objects, obj1 and obj2, which have the same properties and nested structure. We then use expect(obj1).to.deep.equal(obj2) to assert that obj1 and obj2 are deeply equal, meaning that all their properties and nested objects/arrays are the same. If obj1 and obj2 are not deeply equal, the expect function will throw an error and the test will fail. This example demonstrates how you can use chai.deepEqual to check whether two objects are deeply equal.