Remove unused imports and variables

This commit is contained in:
Nathan Barber
2021-05-17 13:37:54 -04:00
parent 7e85b2ec3e
commit 97b6b71983
16 changed files with 93 additions and 82 deletions

View File

@@ -21,7 +21,17 @@
"semi": "off",
"quotes": "off",
"prettier/prettier": "warn",
"no-unused-vars": "warn"
"no-unused-vars": "off",
"unused-imports/no-unused-imports": "error",
"unused-imports/no-unused-vars": [
"warn",
{
"vars": "all",
"varsIgnorePattern": "^regeneratorRuntime|^_",
"args": "after-used",
"argsIgnorePattern": "^_"
}
]
},
"overrides": [
{

View File

@@ -1,5 +1,3 @@
import { combineReducers } from "redux";
export const initialState = {
user_data: undefined,
user_page: 0,

View File

@@ -1,9 +1,7 @@
import React, { useState } from "react";
import { useDispatch, useSelector } from "react-redux";
import { compose, withProps } from "recompose";
import { Link } from "react-router-dom";
import PropTypes from "prop-types";
import { jhapiRequest } from "../../util/jhapiUtil";
const AddUser = (props) => {
var [users, setUsers] = useState([]),
@@ -84,9 +82,6 @@ const AddUser = (props) => {
/[!@#$%^&*(),.?":{}|<>]/g.test(e) == false
);
if (filtered_users.length < users.length) {
let removed_users = users.filter(
(e) => !filtered_users.includes(e)
);
setUsers(filtered_users);
failRegexEvent();
}

View File

@@ -16,7 +16,9 @@ jest.mock("react-redux", () => ({
describe("AddUser Component: ", () => {
var mockAsync = () =>
jest.fn().mockImplementation(() => Promise.resolve({ key: "value" }));
jest
.fn()
.mockImplementation(() => Promise.resolve({ key: "value", status: 200 }));
var addUserJsx = (callbackSpy) => (
<Provider store={createStore(() => {}, {})}>
@@ -25,7 +27,7 @@ describe("AddUser Component: ", () => {
addUsers={callbackSpy}
failRegexEvent={callbackSpy}
updateUsers={callbackSpy}
history={{ push: (a) => {} }}
history={{ push: () => {} }}
/>
</HashRouter>
</Provider>
@@ -36,7 +38,7 @@ describe("AddUser Component: ", () => {
});
beforeEach(() => {
useDispatch.mockImplementation((callback) => {
useDispatch.mockImplementation(() => {
return () => {};
});
useSelector.mockImplementation((callback) => {

View File

@@ -64,11 +64,11 @@ const CreateGroup = (props) => {
className="btn btn-primary"
onClick={() => {
createGroup(groupName)
.then((data) =>
data.status < 300
.then((data) => {
return data.status < 300
? updateGroups(0, limit)
.then((data) => dispatchPageUpdate(data, 0))
.then((data) => history.push("/groups"))
.then(() => history.push("/groups"))
.catch((err) => console.log(err))
: setErrorAlert(
`[${data.status}] Failed to create group. ${
@@ -76,8 +76,8 @@ const CreateGroup = (props) => {
? "Group already exists."
: ""
}`
)
)
);
})
.catch((err) => console.log(err));
}}
>

View File

@@ -5,6 +5,7 @@ import Adapter from "@wojtekmaj/enzyme-adapter-react-17";
import { Provider, useDispatch, useSelector } from "react-redux";
import { createStore } from "redux";
import { HashRouter } from "react-router-dom";
import regeneratorRuntime from "regenerator-runtime"; // eslint-disable-line
Enzyme.configure({ adapter: new Adapter() });
@@ -15,8 +16,8 @@ jest.mock("react-redux", () => ({
}));
describe("CreateGroup Component: ", () => {
var mockAsync = () =>
jest.fn().mockImplementation(() => Promise.resolve({ key: "value" }));
var mockAsync = (result) =>
jest.fn().mockImplementation(() => Promise.resolve(result));
var createGroupJsx = (callbackSpy) => (
<Provider store={createStore(() => {}, {})}>
@@ -35,7 +36,7 @@ describe("CreateGroup Component: ", () => {
});
beforeEach(() => {
useDispatch.mockImplementation((callback) => {
useDispatch.mockImplementation(() => {
return () => () => {};
});
useSelector.mockImplementation((callback) => {
@@ -52,14 +53,14 @@ describe("CreateGroup Component: ", () => {
expect(component.find(".container").length).toBe(1);
});
it("Calls createGroup and refreshGroupsData on submit", () => {
let callbackSpy = mockAsync(),
it("Calls createGroup on submit", () => {
let callbackSpy = mockAsync({ status: 200 }),
component = mount(createGroupJsx(callbackSpy)),
input = component.find("input").first(),
submit = component.find("#submit").first();
input.simulate("change", { target: { value: "" } });
submit.simulate("click");
expect(callbackSpy).toHaveBeenNthCalledWith(1, "");
expect(callbackSpy).toHaveBeenNthCalledWith(2, 0, 3);
expect(component.find(".alert.alert-danger").length).toBe(0);
});
});

View File

@@ -4,7 +4,8 @@ import PropTypes from "prop-types";
import { Link } from "react-router-dom";
const EditUser = (props) => {
var limit = useSelector((state) => state.limit);
var limit = useSelector((state) => state.limit),
[errorAlert, setErrorAlert] = useState(null);
var dispatch = useDispatch();
@@ -40,6 +41,15 @@ const EditUser = (props) => {
return (
<>
<div className="container">
{errorAlert != null ? (
<div className="row">
<div className="col-md-10 col-md-offset-1 col-lg-8 col-lg-offset-2">
<div className="alert alert-danger">{errorAlert}</div>
</div>
</div>
) : (
<></>
)}
<div className="row">
<div className="col-md-10 col-md-offset-1 col-lg-8 col-lg-offset-2">
<div className="panel panel-default">
@@ -64,7 +74,7 @@ const EditUser = (props) => {
checked={admin}
type="checkbox"
id="admin-check"
onChange={(e) => setAdmin(!admin)}
onChange={() => setAdmin(!admin)}
/>
<span> </span>
<label className="form-check-label">Admin</label>
@@ -75,10 +85,14 @@ const EditUser = (props) => {
onClick={() => {
deleteUser(username)
.then((data) => {
updateUsers(0, limit)
data.status < 300
? updateUsers(0, limit)
.then((data) => dispatchPageChange(data, 0))
.then(() => history.push("/"))
.catch((err) => console.log(err));
.catch((err) => console.log(err))
: setErrorAlert(
`[${data.status}] Failed to edit user.`
);
})
.catch((err) => console.log(err));
}}
@@ -111,12 +125,18 @@ const EditUser = (props) => {
admin
)
.then((data) => {
updateUsers(0, limit)
data.status < 300
? updateUsers(0, limit)
.then((data) => dispatchPageChange(data, 0))
.then(() => history.push("/"))
.catch((err) => console.log(err));
.catch((err) => console.log(err))
: setErrorAlert(
`[${data.status}] Failed to edit user.`
);
})
.catch((err) => {});
.catch((err) => {
console.log(err);
});
} else {
setUpdatedUsername("");
failRegexEvent();
@@ -124,12 +144,18 @@ const EditUser = (props) => {
} else {
editUser(username, username, admin)
.then((data) => {
updateUsers(0, limit)
data.status < 300
? updateUsers(0, limit)
.then((data) => dispatchPageChange(data, 0))
.then(() => history.push("/"))
.catch((err) => console.log(err));
.catch((err) => console.log(err))
: setErrorAlert(
`[${data.status}] Failed to edit user.`
);
})
.catch((err) => {});
.catch((err) => {
console.log(err);
});
}
}}
>

View File

@@ -16,7 +16,9 @@ jest.mock("react-redux", () => ({
describe("EditUser Component: ", () => {
var mockAsync = () =>
jest.fn().mockImplementation(() => Promise.resolve({ key: "value" }));
jest
.fn()
.mockImplementation(() => Promise.resolve({ key: "value", status: 200 }));
var mockSync = () => jest.fn();
var editUserJsx = (callbackSpy, empty) => (
@@ -29,7 +31,7 @@ describe("EditUser Component: ", () => {
deleteUser={callbackSpy}
editUser={callbackSpy}
updateUsers={callbackSpy}
history={{ push: (a) => {} }}
history={{ push: () => {} }}
failRegexEvent={callbackSpy}
noChangeEvent={callbackSpy}
/>
@@ -42,7 +44,7 @@ describe("EditUser Component: ", () => {
});
beforeEach(() => {
useDispatch.mockImplementation((callback) => {
useDispatch.mockImplementation(() => {
return () => {};
});
useSelector.mockImplementation((callback) => {

View File

@@ -2,14 +2,11 @@ import React, { useState } from "react";
import { useSelector, useDispatch } from "react-redux";
import { Link } from "react-router-dom";
import PropTypes from "prop-types";
import regeneratorRuntime from "regenerator-runtime";
import GroupSelect from "../GroupSelect/GroupSelect";
const GroupEdit = (props) => {
var [selected, setSelected] = useState([]),
[changed, setChanged] = useState(false),
[added, setAdded] = useState(undefined),
[removed, setRemoved] = useState(undefined),
limit = useSelector((state) => state.limit);
var dispatch = useDispatch();
@@ -39,7 +36,7 @@ const GroupEdit = (props) => {
return <></>;
}
var { group_data, callback } = location.state;
var { group_data } = location.state;
if (!group_data) return <div></div>;
@@ -83,9 +80,6 @@ const GroupEdit = (props) => {
(e) => !selected.includes(e)
);
setAdded(new_users);
setRemoved(removed_users);
let promiseQueue = [];
if (new_users.length > 0)
promiseQueue.push(addToGroup(new_users, group_data.name));
@@ -95,7 +89,7 @@ const GroupEdit = (props) => {
);
Promise.all(promiseQueue)
.then((e) => {
.then(() => {
updateGroups(0, limit)
.then((data) => dispatchPageUpdate(data, 0))
.then(() => history.push("/groups"));
@@ -112,7 +106,7 @@ const GroupEdit = (props) => {
onClick={() => {
var groupName = group_data.name;
deleteGroup(groupName)
.then((e) => {
.then(() => {
updateGroups(0, limit)
.then((data) => dispatchPageUpdate(data, 0))
.then(() => history.push("/groups"));

View File

@@ -1,12 +1,12 @@
import React from "react";
import Enzyme, { mount, shallow } from "enzyme";
import Enzyme, { mount } from "enzyme";
import GroupEdit from "./GroupEdit";
import Adapter from "@wojtekmaj/enzyme-adapter-react-17";
import { Provider, useSelector } from "react-redux";
import { createStore } from "redux";
import { HashRouter } from "react-router-dom";
import ReactDOM from "react-dom";
import { act } from "react-dom/test-utils";
import regeneratorRuntime from "regenerator-runtime"; // eslint-disable-line
Enzyme.configure({ adapter: new Adapter() });
@@ -33,7 +33,7 @@ describe("GroupEdit Component: ", () => {
addToGroup={callbackSpy}
removeFromGroup={callbackSpy}
deleteGroup={callbackSpy}
history={{ push: (a) => callbackSpy }}
history={{ push: () => callbackSpy }}
updateGroups={callbackSpy}
validateUser={jest.fn().mockImplementation(() => okPacket)}
/>

View File

@@ -1,6 +1,5 @@
import React from "react";
import { useSelector, useDispatch } from "react-redux";
import { compose, withProps } from "recompose";
import PropTypes from "prop-types";
import { Link } from "react-router-dom";
@@ -10,7 +9,6 @@ const Groups = (props) => {
var user_data = useSelector((state) => state.user_data),
groups_data = useSelector((state) => state.groups_data),
groups_page = useSelector((state) => state.groups_page),
user_page = useSelector((state) => state.user_page),
limit = useSelector((state) => state.limit),
dispatch = useDispatch(),
page = parseInt(new URLSearchParams(props.location.search).get("page"));

View File

@@ -39,7 +39,7 @@ describe("Groups Component: ", () => {
useSelector.mockImplementation((callback) => {
return callback(mockAppState());
});
useDispatch.mockImplementation((callback) => {
useDispatch.mockImplementation(() => {
return () => {};
});
});

View File

@@ -1,5 +1,4 @@
import React, { useState } from "react";
import { compose, withProps } from "recompose";
import { useSelector, useDispatch } from "react-redux";
import PropTypes from "prop-types";
@@ -9,7 +8,6 @@ import { FaSort, FaSortUp, FaSortDown } from "react-icons/fa";
import "./server-dashboard.css";
import { timeSince } from "../../util/timeSince";
import { jhapiRequest } from "../../util/jhapiUtil";
import PaginationFooter from "../PaginationFooter/PaginationFooter";
const ServerDashboard = (props) => {

View File

@@ -1,5 +1,5 @@
import React from "react";
import Enzyme, { shallow, mount } from "enzyme";
import Enzyme, { mount } from "enzyme";
import ServerDashboard from "./ServerDashboard";
import Adapter from "@wojtekmaj/enzyme-adapter-react-17";
import { HashRouter, Switch } from "react-router-dom";

View File

@@ -1,7 +1,7 @@
import { withProps } from "recompose";
import { jhapiRequest } from "./jhapiUtil";
const withAPI = withProps((props) => ({
const withAPI = withProps(() => ({
updateUsers: (offset, limit) =>
jhapiRequest(`/users?offset=${offset}&limit=${limit}`, "GET").then((data) =>
data.json()

File diff suppressed because one or more lines are too long