Removed js modules files from static
This commit is contained in:
98
main/control_page_js_modules/__tests__/control.test.js
Normal file
98
main/control_page_js_modules/__tests__/control.test.js
Normal file
@@ -0,0 +1,98 @@
|
||||
import React from "react";
|
||||
import {render, unmountComponentAtNode} from "react-dom";
|
||||
import {act} from "react-dom/test-utils";
|
||||
import {Table} from "../src/control";
|
||||
import * as test_data from "./test_users.json"
|
||||
import axios from "axios";
|
||||
import MockAdapter from "axios-mock-adapter";
|
||||
|
||||
let mock = null
|
||||
let container = null
|
||||
beforeEach(() => {
|
||||
mock = new MockAdapter(axios);
|
||||
mock.onGet('/api/users').reply(200, test_data)
|
||||
container = document.createElement('div')
|
||||
container.id = "table"
|
||||
document.body.appendChild(container)
|
||||
})
|
||||
|
||||
afterEach(() => {
|
||||
unmountComponentAtNode(container);
|
||||
mock.restore()
|
||||
container.remove();
|
||||
container = null;
|
||||
});
|
||||
|
||||
it("has no rows without axios request", () => {
|
||||
act(() => {
|
||||
render(<Table/>, container);
|
||||
});
|
||||
let tbody = container.querySelector("#tbody")
|
||||
expect(tbody.getElementsByTagName('tr').length).toBe(0);
|
||||
});
|
||||
|
||||
it("shows valid number of free workplaces", async () => {
|
||||
await act(async () => {
|
||||
render(<Table/>, container)
|
||||
})
|
||||
let element = container.querySelector('#licences_remaining')
|
||||
let licences = Number(element.innerHTML.replace(/Свободных мест: /, ''))
|
||||
expect(licences).toEqual(1)
|
||||
});
|
||||
|
||||
it("Pretext must be deleted on render", () => {
|
||||
act(() => {
|
||||
render(<Table/>, container)
|
||||
})
|
||||
expect(document.body).not.toContain(container.querySelector('#loading'))
|
||||
});
|
||||
|
||||
it("has valid number of table rows with axios request", async () => {
|
||||
await act(async () => {
|
||||
render(<Table/>, container)
|
||||
})
|
||||
let tbody = container.querySelector("#tbody")
|
||||
expect(tbody.getElementsByTagName('tr').length)
|
||||
.toEqual(test_data.users.length + test_data.zendesk_users.length)
|
||||
});
|
||||
|
||||
it("show valid number for engineers and light agents", async () => {
|
||||
await act(async () => {
|
||||
render(<Table/>, container)
|
||||
})
|
||||
let engineers = container.querySelector('#engineers')
|
||||
let agents = container.querySelector('#agents')
|
||||
expect(Number(engineers.textContent)).toEqual(test_data.engineers)
|
||||
expect(Number(agents.textContent)).toEqual(test_data.light_agents)
|
||||
});
|
||||
|
||||
it("called one request on mount", async () => {
|
||||
let requests = jest.spyOn(Table.prototype, "getUsers")
|
||||
await act(async () => {
|
||||
render(<Table/>, container)
|
||||
})
|
||||
expect(requests).toHaveBeenCalledTimes(1)
|
||||
requests.mockRestore()
|
||||
})
|
||||
|
||||
it("checkbox count equals users from db count", async () => {
|
||||
await act(async () => {
|
||||
render(<Table/>, container)
|
||||
})
|
||||
let tbody = container.querySelector("#tbody")
|
||||
let checkboxes = tbody.querySelectorAll("input[type='checkbox']")
|
||||
let users = test_data.users
|
||||
expect(checkboxes.length).toEqual(users.length)
|
||||
})
|
||||
|
||||
it("requests occur every one minute", async () => {
|
||||
jest.useFakeTimers()
|
||||
let requests = jest.spyOn(Table.prototype, "getUsers")
|
||||
await act(async () => {
|
||||
render(<Table/>, container)
|
||||
})
|
||||
jest.advanceTimersByTime(60000)
|
||||
expect(requests).toHaveBeenCalledTimes(2)
|
||||
jest.useRealTimers()
|
||||
requests.mockRestore()
|
||||
})
|
||||
32
main/control_page_js_modules/__tests__/test_users.json
Normal file
32
main/control_page_js_modules/__tests__/test_users.json
Normal file
@@ -0,0 +1,32 @@
|
||||
{
|
||||
"users": [
|
||||
{
|
||||
"user": {
|
||||
"email": "123@test.ru"
|
||||
},
|
||||
"id": 2,
|
||||
"name": "UserForAccessTest",
|
||||
"zendesk_role": "light_agent"
|
||||
}
|
||||
],
|
||||
"engineers": 2,
|
||||
"light_agents": 2,
|
||||
"zendesk_users": [
|
||||
{
|
||||
"name": "Степаненко Ольга s101",
|
||||
"zendesk_role": "engineer",
|
||||
"email": "stepanenko_olga@mail.ru"
|
||||
},
|
||||
{
|
||||
"name": "TEST",
|
||||
"zendesk_role": "engineer",
|
||||
"email": "akovalev1305@gmail.com"
|
||||
},
|
||||
{
|
||||
"name": "Vasua",
|
||||
"zendesk_role": "light_agent",
|
||||
"email": "krav-88@mail.ru"
|
||||
}
|
||||
],
|
||||
"max_agents": 3
|
||||
}
|
||||
Reference in New Issue
Block a user