CEC-5085: add search on VINs support (#450)

This commit is contained in:
Tristan Timblin
2023-09-22 10:53:58 -07:00
committed by GitHub
parent 3177d65e3d
commit 842c402d05
3 changed files with 139 additions and 4 deletions

View File

@@ -0,0 +1,60 @@
import { render, screen, fireEvent } from "@testing-library/react";
import useQuery from "./useQuery";
const MyComponent = () => {
const {
search,
vins,
query,
setQuery,
} = useQuery();
return (
<>
<input
data-testid="input"
value={query}
onChange={(e) => setQuery(e.target.value)}
/>
<ol>
<li data-testid="search">{search}</li>
<li data-testid="vins">{vins}</li>
<li data-testid="query">{query}</li>
</ol>
</>
)
}
const template = (desc, data, expected) => {
it(desc, () => {
render(<MyComponent />);
const input = screen.getByTestId("input");
const search = screen.getByTestId("search");
const vins = screen.getByTestId("vins");
const query = screen.getByTestId("query");
fireEvent.change(input, { target: { value: data } });
expect(search.innerHTML).toBe(expected[0]);
expect(vins.innerHTML).toBe(expected[1]);
expect(query.innerHTML).toBe(data);
});
}
describe("useQuery", () => {
[
["parses a search query", "test", ["test", ""]],
["parses a vin query", "VCF1ZBU23PG001209", ["", "VCF1ZBU23PG001209"]],
["parses a mixed search and vin query", "test VCF1ZBU23PG001209", ["test", "VCF1ZBU23PG001209"]],
["parses a comma separated search query", "ocean,pear,alaska,ronin", ["ocean pear alaska ronin", ""]],
["parses a comma separated vin query", "VCF1EBE2008016235,VCF1EBE20PG001002,VCF1EBE20PG001162", ["", "VCF1EBE2008016235,VCF1EBE20PG001002,VCF1EBE20PG001162"]],
["parses a comma separated mixed search and vin query", "test,VCF1EBE2008016235,VCF1EBE20PG001002,VCF1EBE20PG001162", ["test", "VCF1EBE2008016235,VCF1EBE20PG001002,VCF1EBE20PG001162"]],
["parses a space separated search query", "ocean pear alaska ronin", ["ocean pear alaska ronin", ""]],
["parses a space separated vin query", "VCF1EBE2008016235 VCF1EBE20PG001002 VCF1EBE20PG001162", ["", "VCF1EBE2008016235,VCF1EBE20PG001002,VCF1EBE20PG001162"]],
["parses a space separated mixed search and vin query", "test VCF1EBE2008016235 VCF1EBE20PG001002 VCF1EBE20PG001162", ["test", "VCF1EBE2008016235,VCF1EBE20PG001002,VCF1EBE20PG001162"]],
["trims extraneous values from search", "ocean,, , ,,,,pear,,, ", ["ocean pear", ""]],
["trims extraneous values from vins", "VCF1EBE2008016235,, , ,,,,VCF1EBE20PG001002,,, ", ["", "VCF1EBE2008016235,VCF1EBE20PG001002"]],
].forEach((args) => template(...args))
});