diff --git a/src/components/Contexts/SMSContext.jsx b/src/components/Contexts/SMSContext.jsx
index c40de21..e2fb4bd 100644
--- a/src/components/Contexts/SMSContext.jsx
+++ b/src/components/Contexts/SMSContext.jsx
@@ -19,6 +19,10 @@ export class SMS {
* @param {SMS} data
*/
const validateSend = (data) => {
+ if (data == null) {
+ throw new Error("No SMS data provided");
+ }
+
if (!data.messageText) throw new Error("message is required");
if (!data.ICCID) throw new Error("ICCID is required");
};
diff --git a/src/components/Contexts/SMSContext.test.jsx b/src/components/Contexts/SMSContext.test.jsx
new file mode 100644
index 0000000..92a2130
--- /dev/null
+++ b/src/components/Contexts/SMSContext.test.jsx
@@ -0,0 +1,92 @@
+jest.mock("../../services/smsAPI");
+
+import {
+ render,
+ cleanup,
+ screen,
+ fireEvent,
+ waitFor,
+} from "@testing-library/react";
+import { SMSProvider, useSMSContext } from "./SMSContext";
+import { StatusProvider, useStatusContext } from "./StatusContext";
+
+const checkBaseResults = (error, busy) => {
+ expect(screen.getByTestId("error").innerHTML).toEqual(error);
+ expect(screen.getByTestId("busy").innerHTML).toEqual(busy);
+}
+
+describe("SMSContext", () => {
+ describe("sendSMS", () => {
+ beforeEach(async () => {
+ const TestComp = () => {
+ const {busy, sendSMS} = useSMSContext();
+ const {message, setMessage} = useStatusContext();
+ const send = async (data) => {
+ try {
+ await
+ sendSMS(data);
+ } catch (e) {
+ setMessage(e.message);
+ }
+ }
+
+ return (
+ <>
+
{message}
+ {busy.toString()}
+