text: import * as types from '../../../mutation-types';
  import { mutations } from '../../agents';
  
  describe('#mutations', () => {
    describe('#SET_AGENTS', () => {
      it('set agent records', () => {
        const state = { records: [] };
        mutations[types.default.SET_AGENTS](state, [
          { id: 1, name: 'Agent1', email: 'agent1@chatwoot.com' },
        ]);
        expect(state.records).toEqual([
          {
            id: 1,
            name: 'Agent1',
            email: 'agent1@chatwoot.com',
          },
        ]);
      });
    });
  
    describe('#ADD_AGENT', () => {
      it('push newly created agent data to the store', () => {
        const state = {
          records: [{ id: 1, name: 'Agent1', email: 'agent1@chatwoot.com' }],
        };
        mutations[types.default.ADD_AGENT](state, {
          id: 2,
          name: 'Agent2',
          email: 'agent2@chatwoot.com',
        });
        expect(state.records).toEqual([
          { id: 1, name: 'Agent1', email: 'agent1@chatwoot.com' },
          { id: 2, name: 'Agent2', email: 'agent2@chatwoot.com' },
        ]);
      });
    });
  
    describe('#EDIT_AGENT', () => {
      it('update agent record', () => {
        const state = {
          records: [{ id: 1, name: 'Agent1', email: 'agent1@chatwoot.com' }],
        };
        mutations[types.default.EDIT_AGENT](state, {
          id: 1,
          name: 'Agent2',
          email: 'agent2@chatwoot.com',
        });
        expect(state.records).toEqual([
          { id: 1, name: 'Agent2', email: 'agent2@chatwoot.com' },
        ]);
      });
    });
  
    describe('#DELETE_AGENT', () => {
      it('delete agent record', () => {
        const state = {
          records: [{ id: 1, name: 'Agent1', email: 'agent1@chatwoot.com' }],
        };
        mutations[types.default.DELETE_AGENT](state, 1);
        expect(state.records).toEqual([]);
      });
    });
  
    describe('#UPDATE_AGENTS_PRESENCE', () => {
      it('updates agent presence', () => {
        const state = {
          records: [
            {
              id: 1,
              name: 'Agent1',
              email: 'agent1@chatwoot.com',
              availability_status: 'offline',
            },
            {
              id: 2,
              name: 'Agent1',
              email: 'agent1@chatwoot.com',
              availability_status: 'online',
            },
          ],
        };
  
        mutations[types.default.UPDATE_AGENTS_PRESENCE](state, { '1': 'busy' });
        expect(state.records).toEqual([
          {
            id: 1,
            name: 'Agent1',
            email: 'agent1@chatwoot.com',
            availability_status: 'busy',
          },
          {
            id: 2,
            name: 'Agent1',
            email: 'agent1@chatwoot.com',
            availability_status: 'offline',
          },
        ]);
      });
    });
  });
  