From 0f377d546736a0f65d786c4ee164524b2f86dfec Mon Sep 17 00:00:00 2001 From: Drew Taylor <69828061+drew-fisker@users.noreply.github.com> Date: Tue, 3 Aug 2021 16:34:37 -0700 Subject: [PATCH] Development (#67) * preliminary map for vehicles * weird zoom bug * passing react tests * fixing warnings and updating snapshots * update node environment to 14 * addressing comments by changing variable types and adding styles to home page title * adding CODEOWNERS file * fixing token error --- .github/CODEOWNERS | 8 + .github/workflows/test.workflow.yml | 2 +- Dockerfile | 2 +- Dockerfile.dev | 2 +- README.md | 2 +- package-lock.json | 220 ++--- package.json | 25 +- public/index.html | 41 +- src/assets/green-car.png | Bin 0 -> 676 bytes src/assets/red-car.png | Bin 0 -> 648 bytes src/components/App/App.test.js | 13 +- .../App/__snapshots__/App.test.js.snap | 866 ++++++++++++------ src/components/CarUpdates/Status/index.jsx | 4 +- .../Cars/CarSelectionTable/index.jsx | 4 +- src/components/Cars/List/index.jsx | 4 +- src/components/Cars/Status/index.jsx | 4 +- src/components/Contexts/VehicleContext.jsx | 28 +- .../Contexts/__mocks__/VehicleContext.jsx | 3 + src/components/Home/index.jsx | 7 +- src/components/Layouts/SideMenu.jsx | 4 +- .../__snapshots__/SideMenu.test.jsx.snap | 22 - src/components/Manifest/List/index.jsx | 4 +- src/components/Manifest/Status/index.jsx | 4 +- src/components/Table/HeaderSortable/index.jsx | 2 +- .../Create/__snapshots__/Create.test.js.snap | 16 +- src/components/UpdatePackages/List/index.jsx | 4 +- src/components/VehicleMap/index.jsx | 205 +++++ src/components/VehicleMap/popup.jsx | 72 ++ src/components/useStyles.jsx | 25 + src/services/__mocks__/vehicles.js | 7 +- src/services/vehicles.js | 28 +- 31 files changed, 1120 insertions(+), 508 deletions(-) create mode 100644 .github/CODEOWNERS create mode 100644 src/assets/green-car.png create mode 100644 src/assets/red-car.png create mode 100644 src/components/VehicleMap/index.jsx create mode 100644 src/components/VehicleMap/popup.jsx diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS new file mode 100644 index 0000000..a5b3a0f --- /dev/null +++ b/.github/CODEOWNERS @@ -0,0 +1,8 @@ +# default codeowners +* jwu@fiskerinc.com dtaylor@fiskerinc.com ggetsin@fiskerinc.com + +# devops +.github rgreenberg@fiskerinc.com jwu@fiskerinc.com dtaylor@fiskerinc.com ggetsin@fiskerinc.com +Jenkinsfile rgreenberg@fiskerinc.com jwu@fiskerinc.com dtaylor@fiskerinc.com ggetsin@fiskerinc.com +k8s rgreenberg@fiskerinc.com jwu@fiskerinc.com dtaylor@fiskerinc.com ggetsin@fiskerinc.com +Dockerfile rgreenberg@fiskerinc.com jwu@fiskerinc.com dtaylor@fiskerinc.com ggetsin@fiskerinc.com diff --git a/.github/workflows/test.workflow.yml b/.github/workflows/test.workflow.yml index 420e71f..4868613 100644 --- a/.github/workflows/test.workflow.yml +++ b/.github/workflows/test.workflow.yml @@ -9,7 +9,7 @@ jobs: strategy: matrix: - node-version: [12.x] + node-version: [14.x] steps: - uses: actions/checkout@v2 diff --git a/Dockerfile b/Dockerfile index 561d10b..ba18273 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM node:12-alpine as builder +FROM node:14-alpine as builder COPY package*.json ./ RUN npm install diff --git a/Dockerfile.dev b/Dockerfile.dev index b08537a..cc5ee57 100644 --- a/Dockerfile.dev +++ b/Dockerfile.dev @@ -1,4 +1,4 @@ -FROM node:12-alpine as builder +FROM node:14-alpine as builder COPY package*.json ./ RUN npm install diff --git a/README.md b/README.md index 550e96e..1b79fe4 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ Front-end web application for administrating services Running locally -1. Install Node 12 +1. Install Node 14 2. Run `npm install` 3. Copy .env.template to .env and edit the service urls for authentication and api services 4. Run `./run.sh` from the terminal diff --git a/package-lock.json b/package-lock.json index c06eaf0..1e72216 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1275,9 +1275,9 @@ "integrity": "sha512-ij4wRiunFfaJxjB0BdrYHIH8FxBJpOwNPhhAcunlmPdXudL1WQV1qoP9un6JsEBAgQH+7UXyyjh0g7jTxXK6tg==" }, "@datadog/browser-core": { - "version": "2.15.0", - "resolved": "https://registry.npmjs.org/@datadog/browser-core/-/browser-core-2.15.0.tgz", - "integrity": "sha512-qWTAysGYQXVpM5FOdstaqIF6B99nyQ2N/rJsi1ruPgFmU9yMM9tRdvqiJ7NZcy+OOsZWiinvFRFUMv9SOsHeUA==", + "version": "2.17.0", + "resolved": "https://registry.npmjs.org/@datadog/browser-core/-/browser-core-2.17.0.tgz", + "integrity": "sha512-jGIiVIzxdfQ+FnuFY+tC/j4gBFmK74xW/NIVqHIdN/hbGqA0oXOYs3Qof39ILLhXM5+zxa44RYFY6r/9JaxMIg==", "requires": { "tslib": "^1.10.0" }, @@ -1290,18 +1290,35 @@ } }, "@datadog/browser-logs": { - "version": "2.15.0", - "resolved": "https://registry.npmjs.org/@datadog/browser-logs/-/browser-logs-2.15.0.tgz", - "integrity": "sha512-kZb0nKx1XoZibs3nkBwcP2iff23kX11yUcQj0aXHLL4yulO5I0AqEhoZXwVFfG8KP82sflX+uyssdNIUwMr1cg==", + "version": "2.17.0", + "resolved": "https://registry.npmjs.org/@datadog/browser-logs/-/browser-logs-2.17.0.tgz", + "integrity": "sha512-2S6ryflc28EErDJ+SgWo2OdkvWQ5KA5uqzzvbcnEBeFQpAV5ukAIfElHLiQrwSF4J6NkfLFA3tLt6KPGZE5F2w==", "requires": { - "@datadog/browser-core": "2.15.0", + "@datadog/browser-core": "2.17.0", + "tslib": "^1.10.0" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "@datadog/browser-rum": { + "version": "2.18.0", + "resolved": "https://registry.npmjs.org/@datadog/browser-rum/-/browser-rum-2.18.0.tgz", + "integrity": "sha512-cfji5LdYJl1EpDhDZS67cpvgF6mC+qHSKRDxHQmqYurZW8R97wRhvrfpQWpDrKnl46MCvdQ76qDpSk9AVqK1zg==", + "requires": { + "@datadog/browser-core": "2.18.0", + "@datadog/browser-rum-core": "2.18.0", "tslib": "^1.10.0" }, "dependencies": { "@datadog/browser-core": { - "version": "2.15.0", - "resolved": "https://registry.npmjs.org/@datadog/browser-core/-/browser-core-2.15.0.tgz", - "integrity": "sha512-qWTAysGYQXVpM5FOdstaqIF6B99nyQ2N/rJsi1ruPgFmU9yMM9tRdvqiJ7NZcy+OOsZWiinvFRFUMv9SOsHeUA==", + "version": "2.18.0", + "resolved": "https://registry.npmjs.org/@datadog/browser-core/-/browser-core-2.18.0.tgz", + "integrity": "sha512-1RvxLK8TiuAaDrwkrlOg7wM+7FilJtNbC30h5BxoGChWEBB7QsgeYGnliQ60byZUCzhbvARVzHHNZTxUiP+fPQ==", "requires": { "tslib": "^1.10.0" } @@ -1313,32 +1330,23 @@ } } }, - "@datadog/browser-rum": { - "version": "2.15.0", - "resolved": "https://registry.npmjs.org/@datadog/browser-rum/-/browser-rum-2.15.0.tgz", - "integrity": "sha512-E9PmGHxGQEdn8SUA7DmUu2mf/ifWGXLuGm95Hes/+dqoXbIPryFdmPCFnHaVF2nZNIA7wwW23oqe60KKo2Qjaw==", - "requires": { - "@datadog/browser-core": "2.15.0", - "@datadog/browser-rum-core": "2.15.0", - "tslib": "^1.10.0" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - } - } - }, "@datadog/browser-rum-core": { - "version": "2.15.0", - "resolved": "https://registry.npmjs.org/@datadog/browser-rum-core/-/browser-rum-core-2.15.0.tgz", - "integrity": "sha512-XXEe3JpSyvSvYXpXz/MgrVqs5Rl4Zu2eJXmHfxafAxb3i+VxyA6vc/pLnXPaKeWVcO489MpBEr6Gv7HiOEFZNA==", + "version": "2.18.0", + "resolved": "https://registry.npmjs.org/@datadog/browser-rum-core/-/browser-rum-core-2.18.0.tgz", + "integrity": "sha512-HzdoQltOdIkEEDiZj7r0kHDa/bw6WIBfKPQIv680arRXwhIrvaguwWUiJFTEXI865NA5ouSwGMpPm8Xgrb3B5g==", "requires": { - "@datadog/browser-core": "2.15.0", + "@datadog/browser-core": "2.18.0", "tslib": "^1.10.0" }, "dependencies": { + "@datadog/browser-core": { + "version": "2.18.0", + "resolved": "https://registry.npmjs.org/@datadog/browser-core/-/browser-core-2.18.0.tgz", + "integrity": "sha512-1RvxLK8TiuAaDrwkrlOg7wM+7FilJtNbC30h5BxoGChWEBB7QsgeYGnliQ60byZUCzhbvARVzHHNZTxUiP+fPQ==", + "requires": { + "tslib": "^1.10.0" + } + }, "tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", @@ -1768,13 +1776,13 @@ } }, "@material-ui/core": { - "version": "4.11.4", - "resolved": "https://registry.npmjs.org/@material-ui/core/-/core-4.11.4.tgz", - "integrity": "sha512-oqb+lJ2Dl9HXI9orc6/aN8ZIAMkeThufA5iZELf2LQeBn2NtjVilF5D2w7e9RpntAzDb4jK5DsVhkfOvFY/8fg==", + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/@material-ui/core/-/core-4.12.1.tgz", + "integrity": "sha512-C6hYsjkWCTfBx9FaqxhCZCITBagh7fyCKFtHyvO3tTOcBw6NJaktdhNZ2n82jQdQdgfFvg6OOxi7OOzsAdAcBQ==", "requires": { "@babel/runtime": "^7.4.4", "@material-ui/styles": "^4.11.4", - "@material-ui/system": "^4.11.3", + "@material-ui/system": "^4.12.1", "@material-ui/types": "5.1.0", "@material-ui/utils": "^4.11.2", "@types/react-transition-group": "^4.2.0", @@ -1818,9 +1826,9 @@ } }, "@material-ui/system": { - "version": "4.11.3", - "resolved": "https://registry.npmjs.org/@material-ui/system/-/system-4.11.3.tgz", - "integrity": "sha512-SY7otguNGol41Mu2Sg6KbBP1ZRFIbFLHGK81y4KYbsV2yIcaEPOmsCK6zwWlp+2yTV3J/VwT6oSBARtGIVdXPw==", + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/@material-ui/system/-/system-4.12.1.tgz", + "integrity": "sha512-lUdzs4q9kEXZGhbN7BptyiS1rLNHe6kG9o8Y307HCvF4sQxbCgpL2qi+gUk+yI8a2DNk48gISEQxoxpgph0xIw==", "requires": { "@babel/runtime": "^7.4.4", "@material-ui/utils": "^4.11.2", @@ -1902,6 +1910,11 @@ } } }, + "@react-leaflet/core": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@react-leaflet/core/-/core-1.1.0.tgz", + "integrity": "sha512-zFxMHgfjCi7khRVB7o7H8NoJl36NaezvfcaeEurVXx22lAGHFlTHiSuLOGA4tOiHj+Ep+Lo3uwUGJ3YM9BGkHg==" + }, "@rollup/plugin-node-resolve": { "version": "7.1.3", "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-7.1.3.tgz", @@ -2139,9 +2152,9 @@ "integrity": "sha512-/+CRPXpBDpo2RK9C68N3b2cOvO0Cf5B9aPijHsoDQTHivnGSObdOF2BRQOYjojWTDy6nQvMjmqRXIxH55VjxxA==" }, "@types/aria-query": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-4.2.1.tgz", - "integrity": "sha512-S6oPal772qJZHoRZLFc/XoZW2gFvwXusYUmXPXkgxJLuEk2vOt7jc4Yo6z/vtI0EBkbPBVrJJ0B+prLIKiWqHg==" + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-4.2.2.tgz", + "integrity": "sha512-HnYpAE1Y6kRyKM/XkEuiRQhTHvkzMBurTHnpFLYLBGPIylZNPs9jJcuOOYWxPLJCSEtmZT0Y8rHDokKN7rRTig==" }, "@types/babel__core": { "version": "7.1.14", @@ -2238,9 +2251,9 @@ } }, "@types/jest": { - "version": "26.0.23", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-26.0.23.tgz", - "integrity": "sha512-ZHLmWMJ9jJ9PTiT58juykZpL7KjwJywFN3Rr2pTSkyQfydf/rk22yS7W8p5DaVUMQ2BQC7oYiU3FjbTM/mYrOA==", + "version": "26.0.24", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-26.0.24.tgz", + "integrity": "sha512-E/X5Vib8BWqZNRlDxj9vYXhsDwPYbPINqKF9BsnSoon4RQ0D9moEuLD8txgyypFLH7J4+Lho9Nr/c8H0Fi+17w==", "requires": { "jest-diff": "^26.0.0", "pretty-format": "^26.0.0" @@ -2282,9 +2295,9 @@ "integrity": "sha512-PijRCG/K3s3w1We6ynUKdxEc5AcuuH3NBmMDP8uvKVp6X43UY7NQlTzczakXP3DJR0F4dfNQIGjU2cUeRYs2AA==" }, "@types/prop-types": { - "version": "15.7.3", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.3.tgz", - "integrity": "sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw==" + "version": "15.7.4", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.4.tgz", + "integrity": "sha512-rZ5drC/jWjrArrS8BR6SIr4cWpW09RNTYt9AMZo3Jwwif+iacXAqgVjm0B0Bv/S1jhDXKHqRVNCbACkJ89RAnQ==" }, "@types/q": { "version": "1.5.4", @@ -2292,9 +2305,9 @@ "integrity": "sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug==" }, "@types/react": { - "version": "17.0.5", - "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.5.tgz", - "integrity": "sha512-bj4biDB9ZJmGAYTWSKJly6bMr4BLUiBrx9ujiJEoP9XIDY9CTaPGxE5QWN/1WjpPLzYF7/jRNnV2nNxNe970sw==", + "version": "17.0.14", + "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.14.tgz", + "integrity": "sha512-0WwKHUbWuQWOce61UexYuWTGuGY/8JvtUe/dtQ6lR4sZ3UiylHotJeWpf3ArP9+DSGUoLY3wbU59VyMrJps5VQ==", "requires": { "@types/prop-types": "*", "@types/scheduler": "*", @@ -2309,9 +2322,9 @@ } }, "@types/react-transition-group": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.1.tgz", - "integrity": "sha512-vIo69qKKcYoJ8wKCJjwSgCTM+z3chw3g18dkrDfVX665tMH7tmbDxEAnPdey4gTlwZz5QuHGzd+hul0OVZDqqQ==", + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.2.tgz", + "integrity": "sha512-KibDWL6nshuOJ0fu8ll7QnV/LVTo3PzQ9aCPnRUYPfX7eZohHwLIdNHj7pftanREzHNP4/nJa8oeM73uSiavMQ==", "requires": { "@types/react": "*" } @@ -2325,9 +2338,9 @@ } }, "@types/scheduler": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.1.tgz", - "integrity": "sha512-EaCxbanVeyxDRTQBkdLb3Bvl/HK7PBK6UJjsSixB0iHKoWxE5uu2Q/DgtpOhPIojN0Zl1whvOd7PoHs2P0s5eA==" + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", + "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==" }, "@types/source-list-map": { "version": "0.1.2", @@ -7659,14 +7672,6 @@ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" }, - "indefinite-observable": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/indefinite-observable/-/indefinite-observable-2.0.1.tgz", - "integrity": "sha512-G8vgmork+6H9S8lUAg1gtXEj2JxIQTo0g2PbFiYOdjkziSI0F7UYBiVwhZRuixhBCNGczAls34+5HJPyZysvxQ==", - "requires": { - "symbol-observable": "1.2.0" - } - }, "indent-string": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", @@ -9149,13 +9154,12 @@ } }, "jss": { - "version": "10.6.0", - "resolved": "https://registry.npmjs.org/jss/-/jss-10.6.0.tgz", - "integrity": "sha512-n7SHdCozmxnzYGXBHe0NsO0eUf9TvsHVq2MXvi4JmTn3x5raynodDVE/9VQmBdWFyyj9HpHZ2B4xNZ7MMy7lkw==", + "version": "10.7.1", + "resolved": "https://registry.npmjs.org/jss/-/jss-10.7.1.tgz", + "integrity": "sha512-5QN8JSVZR6cxpZNeGfzIjqPEP+ZJwJJfZbXmeABNdxiExyO+eJJDy6WDtqTf8SDKnbL5kZllEpAP71E/Lt7PXg==", "requires": { "@babel/runtime": "^7.3.1", "csstype": "^3.0.2", - "indefinite-observable": "^2.0.1", "is-in-browser": "^1.1.3", "tiny-warning": "^1.0.2" }, @@ -9168,70 +9172,70 @@ } }, "jss-plugin-camel-case": { - "version": "10.6.0", - "resolved": "https://registry.npmjs.org/jss-plugin-camel-case/-/jss-plugin-camel-case-10.6.0.tgz", - "integrity": "sha512-JdLpA3aI/npwj3nDMKk308pvnhoSzkW3PXlbgHAzfx0yHWnPPVUjPhXFtLJzgKZge8lsfkUxvYSQ3X2OYIFU6A==", + "version": "10.7.1", + "resolved": "https://registry.npmjs.org/jss-plugin-camel-case/-/jss-plugin-camel-case-10.7.1.tgz", + "integrity": "sha512-+ioIyWvmAfgDCWXsQcW1NMnLBvRinOVFkSYJUgewQ6TynOcSj5F1bSU23B7z0p1iqK0PPHIU62xY1iNJD33WGA==", "requires": { "@babel/runtime": "^7.3.1", "hyphenate-style-name": "^1.0.3", - "jss": "10.6.0" + "jss": "10.7.1" } }, "jss-plugin-default-unit": { - "version": "10.6.0", - "resolved": "https://registry.npmjs.org/jss-plugin-default-unit/-/jss-plugin-default-unit-10.6.0.tgz", - "integrity": "sha512-7y4cAScMHAxvslBK2JRK37ES9UT0YfTIXWgzUWD5euvR+JR3q+o8sQKzBw7GmkQRfZijrRJKNTiSt1PBsLI9/w==", + "version": "10.7.1", + "resolved": "https://registry.npmjs.org/jss-plugin-default-unit/-/jss-plugin-default-unit-10.7.1.tgz", + "integrity": "sha512-tW+dfYVNARBQb/ONzBwd8uyImigyzMiAEDai+AbH5rcHg5h3TtqhAkxx06iuZiT/dZUiFdSKlbe3q9jZGAPIwA==", "requires": { "@babel/runtime": "^7.3.1", - "jss": "10.6.0" + "jss": "10.7.1" } }, "jss-plugin-global": { - "version": "10.6.0", - "resolved": "https://registry.npmjs.org/jss-plugin-global/-/jss-plugin-global-10.6.0.tgz", - "integrity": "sha512-I3w7ji/UXPi3VuWrTCbHG9rVCgB4yoBQLehGDTmsnDfXQb3r1l3WIdcO8JFp9m0YMmyy2CU7UOV6oPI7/Tmu+w==", + "version": "10.7.1", + "resolved": "https://registry.npmjs.org/jss-plugin-global/-/jss-plugin-global-10.7.1.tgz", + "integrity": "sha512-FbxCnu44IkK/bw8X3CwZKmcAnJqjAb9LujlAc/aP0bMSdVa3/MugKQRyeQSu00uGL44feJJDoeXXiHOakBr/Zw==", "requires": { "@babel/runtime": "^7.3.1", - "jss": "10.6.0" + "jss": "10.7.1" } }, "jss-plugin-nested": { - "version": "10.6.0", - "resolved": "https://registry.npmjs.org/jss-plugin-nested/-/jss-plugin-nested-10.6.0.tgz", - "integrity": "sha512-fOFQWgd98H89E6aJSNkEh2fAXquC9aZcAVjSw4q4RoQ9gU++emg18encR4AT4OOIFl4lQwt5nEyBBRn9V1Rk8g==", + "version": "10.7.1", + "resolved": "https://registry.npmjs.org/jss-plugin-nested/-/jss-plugin-nested-10.7.1.tgz", + "integrity": "sha512-RNbICk7FlYKaJyv9tkMl7s6FFfeLA3ubNIFKvPqaWtADK0KUaPsPXVYBkAu4x1ItgsWx67xvReMrkcKA0jSXfA==", "requires": { "@babel/runtime": "^7.3.1", - "jss": "10.6.0", + "jss": "10.7.1", "tiny-warning": "^1.0.2" } }, "jss-plugin-props-sort": { - "version": "10.6.0", - "resolved": "https://registry.npmjs.org/jss-plugin-props-sort/-/jss-plugin-props-sort-10.6.0.tgz", - "integrity": "sha512-oMCe7hgho2FllNc60d9VAfdtMrZPo9n1Iu6RNa+3p9n0Bkvnv/XX5San8fTPujrTBScPqv9mOE0nWVvIaohNuw==", + "version": "10.7.1", + "resolved": "https://registry.npmjs.org/jss-plugin-props-sort/-/jss-plugin-props-sort-10.7.1.tgz", + "integrity": "sha512-eyd5FhA+J0QrpqXxO7YNF/HMSXXl4pB0EmUdY4vSJI4QG22F59vQ6AHtP6fSwhmBdQ98Qd9gjfO+RMxcE39P1A==", "requires": { "@babel/runtime": "^7.3.1", - "jss": "10.6.0" + "jss": "10.7.1" } }, "jss-plugin-rule-value-function": { - "version": "10.6.0", - "resolved": "https://registry.npmjs.org/jss-plugin-rule-value-function/-/jss-plugin-rule-value-function-10.6.0.tgz", - "integrity": "sha512-TKFqhRTDHN1QrPTMYRlIQUOC2FFQb271+AbnetURKlGvRl/eWLswcgHQajwuxI464uZk91sPiTtdGi7r7XaWfA==", + "version": "10.7.1", + "resolved": "https://registry.npmjs.org/jss-plugin-rule-value-function/-/jss-plugin-rule-value-function-10.7.1.tgz", + "integrity": "sha512-fGAAImlbaHD3fXAHI3ooX6aRESOl5iBt3LjpVjxs9II5u9tzam7pqFUmgTcrip9VpRqYHn8J3gA7kCtm8xKwHg==", "requires": { "@babel/runtime": "^7.3.1", - "jss": "10.6.0", + "jss": "10.7.1", "tiny-warning": "^1.0.2" } }, "jss-plugin-vendor-prefixer": { - "version": "10.6.0", - "resolved": "https://registry.npmjs.org/jss-plugin-vendor-prefixer/-/jss-plugin-vendor-prefixer-10.6.0.tgz", - "integrity": "sha512-doJ7MouBXT1lypLLctCwb4nJ6lDYqrTfVS3LtXgox42Xz0gXusXIIDboeh6UwnSmox90QpVnub7au8ybrb0krQ==", + "version": "10.7.1", + "resolved": "https://registry.npmjs.org/jss-plugin-vendor-prefixer/-/jss-plugin-vendor-prefixer-10.7.1.tgz", + "integrity": "sha512-1UHFmBn7hZNsHXTkLLOL8abRl8vi+D1EVzWD4WmLFj55vawHZfnH1oEz6TUf5Y61XHv0smdHabdXds6BgOXe3A==", "requires": { "@babel/runtime": "^7.3.1", "css-vendor": "^2.0.8", - "jss": "10.6.0" + "jss": "10.7.1" } }, "jsx-ast-utils": { @@ -9285,6 +9289,11 @@ "webpack-sources": "^1.1.0" } }, + "leaflet": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/leaflet/-/leaflet-1.7.1.tgz", + "integrity": "sha512-/xwPEBidtg69Q3HlqPdU3DnrXQOvQU/CCHA1tcDQVzOwm91YMYaILjNp7L4Eaw5Z4sOYdbBz6koWyibppd8Zqw==" + }, "leven": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", @@ -12154,6 +12163,14 @@ "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.1.tgz", "integrity": "sha512-NAnt2iGDXohE5LI7uBnLnqvLQMtzhkiAOLXTmv+qnF9Ky7xAPcX8Up/xWIhxvLVGJvuLiNc4xQLtuqDRzb4fSA==" }, + "react-leaflet": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/react-leaflet/-/react-leaflet-3.2.0.tgz", + "integrity": "sha512-eHVqoRGjW8T9GxLt7jyTKP3BDQ7XQ5AD+tc/zkbaABn1dbmREDy8GojNcYjZQa3QFLQoOLQMcUC1PTtzytZpUA==", + "requires": { + "@react-leaflet/core": "^1.1.0" + } + }, "react-refresh": { "version": "0.8.3", "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.8.3.tgz", @@ -12294,9 +12311,9 @@ } }, "react-transition-group": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.1.tgz", - "integrity": "sha512-Djqr7OQ2aPUiYurhPalTrVy9ddmFCCzwhqQmtN+J3+3DzLO209Fdr70QrN8Z3DsglWql6iY1lDWAfpFiBtuKGw==", + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.2.tgz", + "integrity": "sha512-/RNYfRAMlZwDSr6z4zNKV6xu53/e2BuaBbGhbyYIXTrmgu/bGHzmqOs7mJSJBHy9Ud+ApHx3QjrkKSp1pxvlFg==", "requires": { "@babel/runtime": "^7.5.5", "dom-helpers": "^5.0.1", @@ -14130,11 +14147,6 @@ } } }, - "symbol-observable": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", - "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==" - }, "symbol-tree": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", diff --git a/package.json b/package.json index 82ebc79..470e9c4 100644 --- a/package.json +++ b/package.json @@ -3,18 +3,20 @@ "version": "0.1.1", "private": true, "dependencies": { - "@datadog/browser-logs": "^2.15.0", - "@datadog/browser-rum": "^2.15.0", - "@material-ui/core": "^4.11.4", + "@datadog/browser-logs": "^2.17.0", + "@datadog/browser-rum": "^2.17.0", + "@material-ui/core": "^4.12.1", "@material-ui/icons": "^4.11.2", "@testing-library/jest-dom": "^5.14.1", "@testing-library/react": "^11.2.7", "@testing-library/user-event": "^12.8.3", "axios": "^0.21.1", "clsx": "^1.1.1", + "leaflet": "^1.7.1", "material-ui-dropzone": "^3.5.0", "react": "^17.0.2", "react-dom": "^17.0.2", + "react-leaflet": "^3.2.0", "react-router-dom": "^5.2.0", "react-scripts": "4.0.3", "web-vitals": "^0.2.4" @@ -32,18 +34,11 @@ "react-app/jest" ] }, - "browserslist": { - "production": [ - ">0.2%", - "not dead", - "not op_mini all" - ], - "development": [ - "last 1 chrome version", - "last 1 firefox version", - "last 1 safari version" - ] - }, + "browserslist": [ + ">0.2%", + "not dead", + "not op_mini all" + ], "engines": { "node": "12.20.1" }, diff --git a/public/index.html b/public/index.html index cd15ab9..064b18d 100644 --- a/public/index.html +++ b/public/index.html @@ -1,22 +1,23 @@ - - - - - - - - - - - Fisker Admin Portal - - - -
- - + + + + + + + + + + + + + Fisker Admin Portal + + + + +
+ + + \ No newline at end of file diff --git a/src/assets/green-car.png b/src/assets/green-car.png new file mode 100644 index 0000000000000000000000000000000000000000..f25b6200c0b5b005e09fe275706b695e35f2c8c1 GIT binary patch literal 676 zcmV;V0$crwP)@1Q43YtXi-POS)@%1Qn%9D^b-0$4qnnrbBRf56(s-Vp1bFH z|G&F?-uHo~{&z{OWF*ynK{3}s4gsM$Jsr?5qTJ5*W}Y?-j-+A(irlFa<|`HHpFKA| zTsL^eX70)b#i~@*hxwJO# z(__8tUZasz{07P{wRA5k5uih%U7!`%<}R35Cy zlzJ@CsjKl#$8H@8I)wq0Qn97dIo&({(a$xKj&-S#Nosfq(pB;*1_~X;IOpi_-088O zIn9@iI}I4$a}S^^fwKML=iz1ePA=P){_Rg?y0000< KMNUMnLSTZBL^~J& literal 0 HcmV?d00001 diff --git a/src/assets/red-car.png b/src/assets/red-car.png new file mode 100644 index 0000000000000000000000000000000000000000..af6edbc58d5ab1e8668a79351f8120132c3460ba GIT binary patch literal 648 zcmV;30(bq1P)s$B32OGYHPk;-a8Jy+Lz>|zJx?U@`nrO-gD3Y zcQ5w?hWg(nyCrMs*-IjN6Bq~LAw6qANzr?8tN6TYa6O&9fv^}7*2z9+TKT2WU>!fd z&yL1E0!f7H#&>-zYsFd^lpdLh+hcMKcmR|Qr*TM1E8kk@MS_a$NNf%m708?K3y;D= z0c5RMGp)iyfn{LS^J-Hd7~v{_tMVi)uvM<`)CRP)zW_E6 zPE^wuj{XrGb!83^MDz0QS*2I7tgco;ivUq^FSq7ntpkc&0R<#ur?aImr zpe7Obbo1PH4^d9Fff2^G!lZ_>I5 i^Zf%4#&@WpI_f9 { expect(container).toMatchSnapshot(); }; +const sleepAndCheck = async (path, selector, compare) => { + const container = await renderRoute(path); + await waitFor(() => { }); + expect(container.querySelector(selector).innerHTML).toEqual(compare); + expect(container).toMatchSnapshot(); +}; + describe("App", () => { beforeAll(() => { // Stablize Table Pagination control ids @@ -107,12 +114,12 @@ describe("App", () => { it("Route / authenticated", async () => { setToken(TEST_AUTH_OBJECT); - await check("/", "h1", "Welcome John!"); + await sleepAndCheck("/", "h1", "Welcome John!"); }); it("Route /home authenticated", async () => { setToken(TEST_AUTH_OBJECT); - await check("/home", "h1", "Welcome John!"); + await sleepAndCheck("/home", "h1", "Welcome John!"); }); it("Route /package-upload authenticated", async () => { diff --git a/src/components/App/__snapshots__/App.test.js.snap b/src/components/App/__snapshots__/App.test.js.snap index 83fb2a2..180e523 100644 --- a/src/components/App/__snapshots__/App.test.js.snap +++ b/src/components/App/__snapshots__/App.test.js.snap @@ -6,19 +6,21 @@ exports[`App Route / authenticated 1`] = ` data-testid="mocked-userprovider" >
+ > + Home +
Fisker Admin Portal
@@ -234,22 +236,151 @@ exports[`App Route / authenticated 1`] = `

Welcome John!

+
+
+
+
+
+
+ + + + +
+
+
+
+
+
+
+
+
+
+ +
+
+
+
+ + Leaflet + + | © + + OpenStreetMap + + contributors +
+
+
+
+
@@ -319,10 +450,10 @@ exports[`App Route /carupdate-deploy authenticated 1`] = ` data-testid="mocked-userprovider" >
Fisker Admin Portal
@@ -549,10 +680,10 @@ exports[`App Route /carupdate-deploy authenticated 1`] = `

0 Selected
@@ -646,7 +777,7 @@ exports[`App Route /carupdate-deploy authenticated 1`] = ` style="text-align: right;" >
VIN sorted ascending @@ -999,10 +1130,10 @@ exports[`App Route /carupdate-deploy unauthenticated 1`] = ` data-testid="mocked-userprovider" >
@@ -1539,10 +1670,10 @@ exports[`App Route /dashboard authenticated 1`] = ` data-testid="mocked-userprovider" >
Fisker Admin Portal
@@ -1769,25 +1900,25 @@ exports[`App Route /dashboard authenticated 1`] = `