labhackercd/linguagem-simples-front

View on GitHub
src/components/Dashboard/Content/SavedContent/savedContent.test.js

Summary

Maintainability
A
0 mins
Test Coverage

import React from 'react';
import {shallow} from "enzyme/build";


import { mount} from 'enzyme';
import MockAdapter from "axios-mock-adapter"
import axiosInstance from './../../../../auth/axiosApi'
import CircularProgress from '@material-ui/core/CircularProgress';
import {API_SAVED_CONTENTS_URL} from '../../../../api_urls'
import SavedContent from './savedContent'

it("Should render the SavedContentComponent", () => {
    const component = shallow(<SavedContent sessionId={1}/>);

    expect(component.exists()).toEqual(true);
    expect(component).toMatchSnapshot();
});




describe('Testing lifeclycle of SavedContentComponent content', () => {
    const savedContentMockData = [
        {
          "id": 2,
          "created": "2020-09-03T14:25:35.161495-03:00",
          "content_type": "news",
          "title": "Especialistas criticam permissão para rede social pedir documento de identidade do usuário",
          "url": "http://www.camara.leg.br/noticias/619950-ESPECIALISTAS-CRITICAM-PERMISSAO-PARA-REDE-SOCIAL-PEDIR-DOCUMENTO-DE-IDENTIDADE-DO-USUARIO",
          "session": 1
        },
        {
          "id": 3,
          "created": "2020-09-03T14:59:36.657775-03:00",
          "content_type": "tv",
          "title": "TV Câmara ",
          "url": "http://www.camara.leg.br/radio/radioagencia/560001-SINAL-DA-RADIO-CAMARA-CHEGA-A-MANAUS",
          "session": 1
        },
        {
          "id": 4,
          "created": "2020-09-03T15:14:03.465319-03:00",
          "content_type": "radio",
          "title": "Sinal da Rádio Câmara chega a Manaus",
          "url": "http://www.camara.leg.br/radio/radioagencia/560001-SINAL-DA-RADIO-CAMARA-CHEGA-A-MANAUS",
          "session": 1
        },
        {
            "id": 5,
            "created": "2020-09-03T15:14:03.465319-03:00",
            "content_type": "",
            "title": "Null item for test",
            "url": "http://www.camara.leg.br/null",
            "session": 1
        }
    ]

    test("Test when data is not loaded if spin is in the screen", async (done) => {
        // Return a fixed timestamp when moment().format() is called
        const dashboardSessionId = 1;
          
        const  wrapper = shallow(<SavedContent sessionId={dashboardSessionId}/>);
        const containsSpinner = wrapper.containsMatchingElement(<CircularProgress />);
        expect(containsSpinner).toBeTruthy()
        
        //const button = wrapper.find("#saveButtonRadio560001").at(0);
        //console.log(button.debug())
        //button.simulate('click')
        done();
    });

    test("Test when empty array data is loaded and if spin is not at the screen", async (done) => {
        // Return a fixed timestamp when moment().format() is called
        const dashboardSessionId = 1;
        var mockInstance = new MockAdapter(axiosInstance);
        await mockInstance.onGet(API_SAVED_CONTENTS_URL+'?session__id=1').reply(200,[])

          
        const wrapper = mount(<SavedContent sessionId={dashboardSessionId}/>);
        

        setImmediate(() => {
            wrapper.update();
            //console.log(wrapper.debug())
            const containsSpinner = wrapper.containsMatchingElement(<CircularProgress />);
            expect(containsSpinner).not.toBeTruthy()
            
            //console.log(deleteButton.debug())
            done();
        })

    });

    test("Test when data is loaded if spin is not at the screen", async (done) => {
        // Return a fixed timestamp when moment().format() is called
        const dashboardSessionId = 1;
        var mockInstance = new MockAdapter(axiosInstance);
        await mockInstance.onGet(API_SAVED_CONTENTS_URL+'?session__id=1').reply(200,savedContentMockData)
                          .onDelete(API_SAVED_CONTENTS_URL+'2').reply(204)
                          .onDelete(API_SAVED_CONTENTS_URL+'4').reply(204)
                          .onDelete(API_SAVED_CONTENTS_URL+'3').reply(204)
                          
          
        const wrapper = mount(<SavedContent sessionId={dashboardSessionId}/>);
        

        setImmediate(() => {
            wrapper.update();
            //console.log(wrapper.debug())
            const containsSpinner = wrapper.containsMatchingElement(<CircularProgress />);
            expect(containsSpinner).not.toBeTruthy()
            

            const deleteButtonAgencia = wrapper.find('#deleteSavedContent2').at(0);
            deleteButtonAgencia.simulate('click');

            const deleteButtonRadio = wrapper.find('#deleteRadioSavedContent4').at(0);
            deleteButtonRadio.simulate('click');

            const deleteButtonTV = wrapper.find('#deleteTVSavedContent3').at(0);
            deleteButtonTV.simulate('click');

            //console.log(deleteButton.debug())
            done();
        })

    });

    afterAll(() => {
       // mockInstance.restore();
    });


});