diff --git a/package-lock.json b/package-lock.json
index 432997c76366a2e7b51c296bf8fa931da096be08..498902492949887e658cd0c052a769cf398b84c2 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -2209,9 +2209,9 @@
"dev": true
},
"@types/babel__core": {
- "version": "7.1.12",
- "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.12.tgz",
- "integrity": "sha512-wMTHiiTiBAAPebqaPiPDLFA4LYPKr6Ph0Xq/6rq1Ur3v66HXyG+clfR9CNETkD7MQS8ZHvpQOtA53DLws5WAEQ==",
+ "version": "7.1.14",
+ "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.14.tgz",
+ "integrity": "sha512-zGZJzzBUVDo/eV6KgbE0f0ZI7dInEYvo12Rb70uNQDshC3SkRMb67ja0GgRHZgAX3Za6rhaWlvbDO8rrGyAb1g==",
"dev": true,
"requires": {
"@babel/parser": "^7.1.0",
@@ -2241,9 +2241,9 @@
}
},
"@types/babel__traverse": {
- "version": "7.11.0",
- "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.11.0.tgz",
- "integrity": "sha512-kSjgDMZONiIfSH1Nxcr5JIRMwUetDki63FSQfpTCz8ogF3Ulqm8+mr5f78dUYs6vMiB6gBusQqfQmBvHZj/lwg==",
+ "version": "7.11.1",
+ "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.11.1.tgz",
+ "integrity": "sha512-Vs0hm0vPahPMYi9tDjtP66llufgO3ST16WXaSTtDGEl9cewAl3AibmxWw6TINOqHPT9z0uABKAYjT9jNSg4npw==",
"dev": true,
"requires": {
"@babel/types": "^7.3.0"
@@ -2751,6 +2751,12 @@
"integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0=",
"dev": true
},
+ "astral-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz",
+ "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==",
+ "dev": true
+ },
"async-each": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz",
@@ -7310,39 +7316,6 @@
"@jest/core": "^25.5.4",
"import-local": "^3.0.2",
"jest-cli": "^25.5.4"
- }
- },
- "jest-changed-files": {
- "version": "25.5.0",
- "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-25.5.0.tgz",
- "integrity": "sha512-EOw9QEqapsDT7mKF162m8HFzRPbmP8qJQny6ldVOdOVBz3ACgPm/1nAn5fPQ/NDaYhX/AHkrGwwkCncpAVSXcw==",
- "dev": true,
- "requires": {
- "@jest/types": "^25.5.0",
- "execa": "^3.2.0",
- "throat": "^5.0.0"
- }
- },
- "jest-cli": {
- "version": "25.5.4",
- "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-25.5.4.tgz",
- "integrity": "sha512-rG8uJkIiOUpnREh1768/N3n27Cm+xPFkSNFO91tgg+8o2rXeVLStz+vkXkGr4UtzH6t1SNbjwoiswd7p4AhHTw==",
- "dev": true,
- "requires": {
- "@jest/core": "^25.5.4",
- "@jest/test-result": "^25.5.0",
- "@jest/types": "^25.5.0",
- "chalk": "^3.0.0",
- "exit": "^0.1.2",
- "graceful-fs": "^4.2.4",
- "import-local": "^3.0.2",
- "is-ci": "^2.0.0",
- "jest-config": "^25.5.4",
- "jest-util": "^25.5.0",
- "jest-validate": "^25.5.0",
- "prompts": "^2.0.1",
- "realpath-native": "^2.0.0",
- "yargs": "^15.3.1"
},
"dependencies": {
"ansi-styles": {
@@ -7385,6 +7358,28 @@
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"dev": true
},
+ "jest-cli": {
+ "version": "25.5.4",
+ "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-25.5.4.tgz",
+ "integrity": "sha512-rG8uJkIiOUpnREh1768/N3n27Cm+xPFkSNFO91tgg+8o2rXeVLStz+vkXkGr4UtzH6t1SNbjwoiswd7p4AhHTw==",
+ "dev": true,
+ "requires": {
+ "@jest/core": "^25.5.4",
+ "@jest/test-result": "^25.5.0",
+ "@jest/types": "^25.5.0",
+ "chalk": "^3.0.0",
+ "exit": "^0.1.2",
+ "graceful-fs": "^4.2.4",
+ "import-local": "^3.0.2",
+ "is-ci": "^2.0.0",
+ "jest-config": "^25.5.4",
+ "jest-util": "^25.5.0",
+ "jest-validate": "^25.5.0",
+ "prompts": "^2.0.1",
+ "realpath-native": "^2.0.0",
+ "yargs": "^15.3.1"
+ }
+ },
"supports-color": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
@@ -7396,6 +7391,17 @@
}
}
},
+ "jest-changed-files": {
+ "version": "25.5.0",
+ "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-25.5.0.tgz",
+ "integrity": "sha512-EOw9QEqapsDT7mKF162m8HFzRPbmP8qJQny6ldVOdOVBz3ACgPm/1nAn5fPQ/NDaYhX/AHkrGwwkCncpAVSXcw==",
+ "dev": true,
+ "requires": {
+ "@jest/types": "^25.5.0",
+ "execa": "^3.2.0",
+ "throat": "^5.0.0"
+ }
+ },
"jest-config": {
"version": "25.5.4",
"resolved": "https://registry.npmjs.org/jest-config/-/jest-config-25.5.4.tgz",
@@ -14448,14 +14454,6 @@
"requires": {
"astral-regex": "^1.0.0",
"strip-ansi": "^5.2.0"
- },
- "dependencies": {
- "astral-regex": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz",
- "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==",
- "dev": true
- }
}
},
"string-width": {
diff --git a/src/__test__/bank/EditBank.test.js b/src/__test__/bank/EditBank.test.js
index b3259c353232d0c4aed8b19cf45541d803d80308..4fd19d676be468ad3672cdb001875df7ee47a343 100644
--- a/src/__test__/bank/EditBank.test.js
+++ b/src/__test__/bank/EditBank.test.js
@@ -74,3 +74,27 @@ test("Test edit bank error", async () => {
expect(bank.textContent).toContain("Error !, Data tidak dapat disimpan");
expect(fetch.mock.calls.length).toEqual(2);
});
+
+test("Test edit bank required marks", async () => {
+ fetch
+ .once(
+ JSON.stringify({
+ id: "e1827709-82a3-4a6f-b55c-bb1a229b7036",
+ bank_name: "bca",
+ bank_account_number: "1234456",
+ bank_account_name: "test bca",
+ })
+ )
+ .once(JSON.stringify({}));
+
+ const { getByTestId } = render(
+
+
+
+ );
+ const waitBank = getByTestId("waiting-edit-bank");
+ expect(waitBank.textContent).toContain("Fetching data..");
+ await waitFor(() => getByTestId("edit-bank"));
+ const formBank = getByTestId("form-bank");
+ expect(formBank.textContent).toContain("* Perlu diisi", "Nama bank*", "Nomor rekening*", "Nama pemilik rekening*");
+});
\ No newline at end of file
diff --git a/src/__test__/bank/TambahBank.test.js b/src/__test__/bank/TambahBank.test.js
index 089a9b45e16be735e55fb2ff779faf3f272d5f89..27d7770a906cfa0b42801d6b5ad31addf1478220 100644
--- a/src/__test__/bank/TambahBank.test.js
+++ b/src/__test__/bank/TambahBank.test.js
@@ -23,3 +23,13 @@ test("Test tambah bank renders", async () => {
});
expect(fetch.mock.calls.length).toEqual(0);
});
+
+test("Test tambah bank required marks", async () => {
+ const { getByTestId } = render(
+
+
+
+ );
+ const formBank = getByTestId("tambah-bank");
+ expect(formBank.textContent).toContain("* Perlu diisi", "Nama bank*", "Nomor rekening*", "Nama pemilik rekening*");
+});
\ No newline at end of file
diff --git a/src/__test__/kategori/EditKategori.test.js b/src/__test__/kategori/EditKategori.test.js
index 08ad8ac15d0a40c4e9066433dfa90d00b98f76d8..d20633fa23c48101ef06af2158e6e60c0033fad3 100644
--- a/src/__test__/kategori/EditKategori.test.js
+++ b/src/__test__/kategori/EditKategori.test.js
@@ -72,3 +72,26 @@ test("Test Edit kategori error", async () => {
expect(category.textContent).toContain("Error !, Data tidak dapat disimpan");
expect(fetch.mock.calls.length).toEqual(2);
});
+
+test("Test edit kategori required marks", async () => {
+ fetch
+ .once(
+ JSON.stringify({
+ id: "f0c08b4f-7421-4298-89e4-3d4a40ef15b4",
+ name: "Baju",
+ image: null,
+ })
+ )
+ .once(JSON.stringify({}));
+
+ const { getByTestId } = render(
+
+
+
+ );
+ const waitKategori = getByTestId("waiting-edit-kategori");
+ expect(waitKategori.textContent).toContain("Fetching data..");
+ await waitFor(() => getByTestId("edit-kategori"));
+ const formKategori = getByTestId("edit-kategori");
+ expect(formKategori.textContent).toContain("* Perlu diisi", "Nama kategori*");
+});
\ No newline at end of file
diff --git a/src/__test__/kategori/TambahKategori.test.js b/src/__test__/kategori/TambahKategori.test.js
index fed5dc6ffd8f427400ed0d233811e6d4672c0c6f..2eff26f3cf38e01337e2b1f2a38afe46bcfe0583 100644
--- a/src/__test__/kategori/TambahKategori.test.js
+++ b/src/__test__/kategori/TambahKategori.test.js
@@ -58,3 +58,13 @@ test("Test tambah kategori error", async () => {
expect(category.textContent).toContain("Error !, Data tidak dapat disimpan");
expect(fetch.mock.calls.length).toEqual(1);
});
+
+test("Test tambah kategori required marks", async () => {
+ const { getByTestId } = render(
+
+
+
+ );
+ const formKategori = getByTestId("tambah-kategori");
+ expect(formKategori.textContent).toContain("* Perlu diisi", "Nama kategori*");
+});
\ No newline at end of file
diff --git a/src/__test__/produk/TambahProduk.test.js b/src/__test__/produk/TambahProduk.test.js
index b730cf3eaea22673c444480e59656eb94a8ba27b..79208a5f23b5b89b9f2c76bde8ee272f63c21fbe 100644
--- a/src/__test__/produk/TambahProduk.test.js
+++ b/src/__test__/produk/TambahProduk.test.js
@@ -438,4 +438,72 @@ test("Test modal produk required", async () => {
const formCategory = getByTestId("form-produk");
expect(formCategory.textContent).toContain("Modal tidak boleh kosong");
expect(fetch.mock.calls.length).toEqual(3);
+});
+
+test("Test tambah produk required marks", async () => {
+ fetch
+ .once(
+ JSON.stringify({
+ count: 4,
+ next: null,
+ previous: null,
+ results: [
+ {
+ id: "f0c08b4f-7421-4298-89e4-3d4a40ef15b4",
+ name: "Baju",
+ image: null,
+ },
+ {
+ id: "0664247c-d9ea-4e56-bb02-4b8463f9e14c",
+ name: "Mainan",
+ image: null,
+ },
+ {
+ id: "8c2c06e6-0ead-4b9a-8de1-37237fc6bdc9",
+ name: "Makanan",
+ image: null,
+ },
+ {
+ id: "b8a9909b-9131-4c2b-bcc5-6bceb18f702c",
+ name: "Minuman",
+ image: null,
+ },
+ ],
+ })
+ )
+ .once(
+ JSON.stringify({
+ count: 7,
+ next: null,
+ previous: null,
+ results: [
+ {
+ id: "626aa022-50a7-4d3a-b658-79cb0f059b03",
+ name: "Baju Tidur hehe",
+ category: "f0c08b4f-7421-4298-89e4-3d4a40ef15b4",
+ category_name: "Baju",
+ image: null,
+ },
+ {
+ id: "ab222bb8-46e4-40bb-bd47-7f546d356de1",
+ name: "joker baru",
+ category: "f0c08b4f-7421-4298-89e4-3d4a40ef15b4",
+ category_name: "Baju",
+ image: null,
+ },
+ ],
+ })
+ )
+ .once(JSON.stringify({}));
+
+ const { getByTestId } = render(
+
+
+
+ );
+ await act(async () => {
+ await fireEvent.submit(getByTestId("submit-produk"));
+ });
+ const formProduk = getByTestId("tambah-produk");
+ expect(formProduk.textContent).toContain("* Perlu diisi", "Nama Produk*", "Kategori*", "Subkategori*", "Deskripsi Produk*", "Modal/satuan*", "Harga/satuan*", "Satuan*", "Stok*");
});
\ No newline at end of file
diff --git a/src/__test__/program/TambahProgram.test.js b/src/__test__/program/TambahProgram.test.js
index db22db1224f407e2b0d5f4a9e8e11f1d69c431c9..bea84fea6cce471c06bcc46863c6b848f92f876b 100644
--- a/src/__test__/program/TambahProgram.test.js
+++ b/src/__test__/program/TambahProgram.test.js
@@ -71,3 +71,13 @@ test("Test tambah program renders", async () => {
});
expect(fetch.mock.calls.length).toEqual(1);
});
+
+test("Test tambah program required marks", async () => {
+ const { getByTestId } = render(
+
+
+
+ );
+ const formProgram = getByTestId("tambah-program");
+ expect(formProgram.textContent).toContain("* Perlu diisi", "Nama program*", "Deskripsi*", "Donasi*", "Tanggal dan waktu mulai*", "Tanggal dan waktu berakhir");
+});
\ No newline at end of file
diff --git a/src/__test__/subkategori/EditSubCategory.test.js b/src/__test__/subkategori/EditSubCategory.test.js
index e6b63a724b88ef13b0cf5ee1bed4b8e00525d2f8..de27d84d04fbea79e903b4b2fa83befe9f27db3d 100644
--- a/src/__test__/subkategori/EditSubCategory.test.js
+++ b/src/__test__/subkategori/EditSubCategory.test.js
@@ -147,3 +147,53 @@ test("Test Edit subkategori error", async () => {
);
expect(fetch.mock.calls.length).toEqual(3);
});
+
+test("Test edit subkategori required marks", async () => {
+ fetch
+ .once(
+ JSON.stringify({
+ id: "cbc3dcdd-98e2-459f-b244-6f07819dda8a",
+ name: "avengers endgame",
+ category: "0664247c-d9ea-4e56-bb02-4b8463f9e14c",
+ category_name: "Mainan",
+ image:
+ "https://industripilar-api-staging.s3.amazonaws.com/media/uploads/subcategories/1_txtcYocQEGtOFN33ZCTDbw.png",
+ })
+ )
+ .once(
+ JSON.stringify({
+ count: 3,
+ next: null,
+ previous: null,
+ results: [
+ {
+ id: "f0c08b4f-7421-4298-89e4-3d4a40ef15b4",
+ name: "Baju",
+ image: null,
+ },
+ {
+ id: "0664247c-d9ea-4e56-bb02-4b8463f9e14c",
+ name: "Mainan",
+ image: null,
+ },
+ {
+ id: "8c2c06e6-0ead-4b9a-8de1-37237fc6bdc9",
+ name: "Makanan",
+ image: null,
+ },
+ ],
+ })
+ )
+ .once(JSON.stringify({}));
+
+ const { getByTestId } = render(
+
+
+
+ );
+ const waitSubkategori = getByTestId("waiting-edit-subkategori");
+ expect(waitSubkategori.textContent).toContain("Fetching data..");
+ await waitFor(() => getByTestId("edit-subkategori"));
+ const formSub = getByTestId("edit-subkategori");
+ expect(formSub.textContent).toContain("* Perlu diisi", "Nama subkategori*", "Kategori *");
+});
\ No newline at end of file
diff --git a/src/__test__/subkategori/TambahSubCategory.test.js b/src/__test__/subkategori/TambahSubCategory.test.js
index e8a888e1cb57fd04f2d4e9e3569a711044d5e46e..d4bf6af8fb025ba843a5fb84d4e89274147526b3 100644
--- a/src/__test__/subkategori/TambahSubCategory.test.js
+++ b/src/__test__/subkategori/TambahSubCategory.test.js
@@ -174,3 +174,41 @@ test("Test tambah subkategori form error", async () => {
"Error loading form !, Please relogin.."
);
});
+
+test("Test tambah subkategori required marks", async () => {
+ fetch
+ .once(
+ JSON.stringify({
+ count: 3,
+ next: null,
+ previous: null,
+ results: [
+ {
+ id: "f0c08b4f-7421-4298-89e4-3d4a40ef15b4",
+ name: "Baju",
+ image: null,
+ },
+ {
+ id: "0664247c-d9ea-4e56-bb02-4b8463f9e14c",
+ name: "Mainan",
+ image: null,
+ },
+ {
+ id: "8c2c06e6-0ead-4b9a-8de1-37237fc6bdc9",
+ name: "Makanan",
+ image: null,
+ },
+ ],
+ })
+ )
+ .once(JSON.stringify({}));
+
+ const { getByTestId } = render(
+
+
+
+ );
+ await waitFor(() => getByTestId("category-subcategory-input"));
+ const formSub = getByTestId("tambah-subkategori");
+ expect(formSub.textContent).toContain("* Perlu diisi", "Nama subkategori*", "Kategori*");
+});
\ No newline at end of file
diff --git a/src/page/bank/FormBank.jsx b/src/page/bank/FormBank.jsx
index 8239bd90941149375b067796d003873d2cccffb3..7c8fecb90bb8cdd713b988f54234d72ae0de44b0 100644
--- a/src/page/bank/FormBank.jsx
+++ b/src/page/bank/FormBank.jsx
@@ -1,77 +1,88 @@
-import React from "react";
-import { useForm } from "react-hook-form";
-import {
- ErrorDiv,
- RowInput,
- InputForm,
- LabelInput,
- InputSubmitForm,
-} from "../../component/html/html";
-import { css } from "@emotion/core";
-
-const FormBank = ({ onSubmit, initialData = null }) => {
- const { register, handleSubmit, errors } = useForm({
- defaultValues:
- initialData !== null
- ? {
- bank_name: initialData["bank_name"],
- bank_account_number: initialData["bank_account_number"],
- bank_account_name: initialData["bank_account_name"],
- }
- : {},
- });
- return (
-
- );
-};
-
-export default FormBank;
+import React from "react";
+import { useForm } from "react-hook-form";
+import {
+ ErrorDiv,
+ RowInput,
+ InputForm,
+ LabelInput,
+ InputSubmitForm,
+} from "../../component/html/html";
+import { css } from "@emotion/core";
+
+const FormBank = ({ onSubmit, initialData = null }) => {
+ const { register, handleSubmit, errors } = useForm({
+ defaultValues:
+ initialData !== null
+ ? {
+ bank_name: initialData["bank_name"],
+ bank_account_number: initialData["bank_account_number"],
+ bank_account_name: initialData["bank_account_name"],
+ }
+ : {},
+ });
+ return (
+
+ );
+};
+
+export default FormBank;
diff --git a/src/page/kategori/FormKategori.jsx b/src/page/kategori/FormKategori.jsx
index 58b15eef49f0c91355516a22339909ae74add6c9..6b02924a94f118036192badad7d0df87a91d839a 100644
--- a/src/page/kategori/FormKategori.jsx
+++ b/src/page/kategori/FormKategori.jsx
@@ -22,8 +22,16 @@ const FormKategori = ({ onSubmit, initialData = null }) => {
flex-direction: column;
`}
>
+
+ * Perlu diisi
+
- Nama kategori
+ Nama kategori
+ *
{
Error loading form !, Please relogin..
))}
+
+ * Perlu diisi
+
- Nama Produk
+ Nama Produk
+ *
{
{results === undefined || Object.keys(results).length === 0 ? null : (
- Kategori
+ Kategori
+ *
{
Object.keys(resultsSubcategory).length === 0 ||
Object.keys(results).length === 0 ? null : (
- Subkategori
+ Subkategori
+ *
{
`}
data-testid="desc-produk-input-parent"
>
- Deskripsi Produk
+ Deskripsi Produk
+ *
{
)}
- Modal/satuan
+ Modal/satuan
+ *
{
{errors.modal && Modal tidak boleh kosong}
- Harga/satuan
+ Harga/satuan
+ *
{
{errors.price && Harga Produk tidak boleh kosong}
- Stok
+ Stok
+ *
{
{errors.stock && Stok Produk tidak boleh kosong}
- Satuan
+ Satuan
+ *
{
flex-direction: column;
`}
>
+
+ * Perlu diisi
+
- Nama program
+ Nama program
+ *
{
min-height: 30px;
`}
>
- Deskripsi
+ Deskripsi
+ *
{
- Tanggal dan waktu mulai{" "}
+ Tanggal dan waktu mulai
+ *
{
- Tanggal dan waktu berakhir{" "}
+ Tanggal dan waktu berakhir
+ *
{
/>
- Donasi
+ Donasi
+ *
{
Error loading form !, Please relogin..
)}
+
+ * Perlu diisi
+
- Nama subkategori
+ Nama subkategori
+ *
{
{results === undefined || Object.keys(results).length === 0 ? null : (
- Kategori
+ Kategori
+ *