diff --git a/src/redux/drugs/drugs.thunks.test.ts b/src/redux/drugs/drugs.thunks.test.ts
new file mode 100644
index 0000000000000000000000000000000000000000..a90e8c5edf80337116f7960aa60ad9be47197b6f
--- /dev/null
+++ b/src/redux/drugs/drugs.thunks.test.ts
@@ -0,0 +1,39 @@
+import { PROJECT_ID } from '@/constants/mapId';
+import { drugsFixture } from '@/models/fixtures/drugFixtures';
+import { HTTP_OK } from '@/constants/httpResponses';
+import { mockNetworkResponse } from '@/utils/mockNetworkResponse';
+import {
+  ToolkitStoreWithSingleSlice,
+  createStoreInstanceUsingSliceReducer,
+} from '@/utils/createStoreInstanceUsingSliceReducer';
+import { getDrugs } from './drugs.thunks';
+import drugsReducer from './drugs.slice';
+import { DrugsState } from './drugs.types';
+
+const mockedAxiosClient = mockNetworkResponse();
+const SEARCH_QUERY = 'aspirin';
+
+describe('drugs thunks', () => {
+  let store = {} as ToolkitStoreWithSingleSlice<DrugsState>;
+  beforeEach(() => {
+    store = createStoreInstanceUsingSliceReducer('drugs', drugsReducer);
+  });
+  describe('getDrugs', () => {
+    it('should return data when data response from API is valid', async () => {
+      mockedAxiosClient
+        .onGet(`projects/${PROJECT_ID}/drugs:search?query=${SEARCH_QUERY}`)
+        .reply(HTTP_OK, drugsFixture);
+
+      const { payload } = await store.dispatch(getDrugs(SEARCH_QUERY));
+      expect(payload).toEqual(drugsFixture);
+    });
+    it('should return undefined when data response from API is not valid ', async () => {
+      mockedAxiosClient
+        .onGet(`projects/${PROJECT_ID}/drugs:search?query=${SEARCH_QUERY}`)
+        .reply(HTTP_OK, { randomProperty: 'randomValue' });
+
+      const { payload } = await store.dispatch(getDrugs(SEARCH_QUERY));
+      expect(payload).toEqual(undefined);
+    });
+  });
+});