diff --git a/src/components/layout/footer/__tests__/ServerTime.test.tsx b/src/components/layout/footer/__tests__/ServerTime.test.tsx
new file mode 100644
index 0000000000..215acc5c36
--- /dev/null
+++ b/src/components/layout/footer/__tests__/ServerTime.test.tsx
@@ -0,0 +1,11 @@
+import { render, screen } from '@testing-library/react';
+import ServerTime from '../ServerTime';
+
+jest.mock('Hooks/useServerTime', () => () => 1234567890);
+
+describe('ServerTime component', () => {
+ it('should render the component with correct time format', () => {
+ render();
+ expect(screen.getByText('2009-02-13 23:31:30 GMT')).toBeInTheDocument();
+ });
+});
diff --git a/src/hooks/__tests__/useServerTime.test.ts b/src/hooks/__tests__/useServerTime.test.ts
new file mode 100644
index 0000000000..57036468bd
--- /dev/null
+++ b/src/hooks/__tests__/useServerTime.test.ts
@@ -0,0 +1,25 @@
+import { renderHook } from '@testing-library/react';
+import useQuery from 'Api/hooks/useQuery';
+import useServerTime from 'Hooks/useServerTime';
+
+jest.mock('Api/hooks/useQuery');
+
+const mockUseQuery = useQuery as jest.MockedFunction;
+
+describe('useServerTime hook', () => {
+ it('should return initial server time and updates it based on the useQuery result', () => {
+ // @ts-expect-error need to come up with a way to mock the return type of useQuery
+ mockUseQuery.mockReturnValue({ data: { time: 1234567890 } });
+
+ const { result } = renderHook(() => useServerTime());
+ expect(result.current).toBe(1234567890);
+ });
+
+ it('should handle useQuery data being null', () => {
+ // @ts-expect-error need to come up with a way to mock the return type of useQuery
+ mockUseQuery.mockReturnValue({ data: { time: null } });
+
+ const { result } = renderHook(() => useServerTime());
+ expect(result.current).toBeGreaterThan(0);
+ });
+});