test: testcases made for hook useusercanaddthreadinblackoutDate

This commit is contained in:
ayeshoali
2022-12-01 20:46:37 +05:00
parent f1d2de6694
commit 8e19eed468

View File

@@ -6,9 +6,10 @@ import { AppProvider } from '@edx/frontend-platform/react';
import { initializeStore } from '../../store';
import { DiscussionContext } from '../common/context';
import { useCurrentDiscussionTopic } from './hooks';
import { useCurrentDiscussionTopic, useUserCanAddThreadInBlackoutDate } from './hooks';
let store;
initializeMockApp();
describe('Hooks', () => {
describe('useCurrentDiscussionTopic', () => {
@@ -82,4 +83,101 @@ describe('Hooks', () => {
expect(queryByText('null')).toBeInTheDocument();
});
});
describe('useUserCanAddThreadInBlackoutDate', () => {
function ComponentWithHook() {
const userCanAddThreadInBlackoutDate = useUserCanAddThreadInBlackoutDate();
return (
<div>
{String(userCanAddThreadInBlackoutDate)}
</div>
);
}
function renderComponent() {
return render(
<IntlProvider locale="en">
<AppProvider store={store}>
<ComponentWithHook />
</AppProvider>
</IntlProvider>,
);
}
describe('blackout dates are not active', () => {
beforeEach(async () => {
store = initializeStore({
config: {
blackouts: [],
hasModerationPrivileges: false,
isGroupTa: false,
isCourseAdmin: false,
isCourseStaff: false,
isUserAdmin: false,
},
});
});
test('return true when blackout dates are not active and Role is Learner', () => {
const { queryByText } = renderComponent();
expect(queryByText('true')).toBeInTheDocument();
});
});
describe('blackout dates are active', () => {
beforeEach(async () => {
store = initializeStore({
config: {
blackouts: [{ start: '2022-11-25T00:00:00Z', end: '2050-11-25T23:59:00Z' }],
hasModerationPrivileges: false,
isGroupTa: false,
isCourseAdmin: false,
isCourseStaff: false,
isUserAdmin: false,
},
});
});
test('return false when blackout dates are active and Role is Learner', async () => {
const { queryByText } = renderComponent();
expect(queryByText('false')).toBeInTheDocument();
});
});
describe('blackout dates are active And role is other than Leaner', () => {
beforeEach(async () => {
store = initializeStore({
config: {
blackouts: [{ start: '2022-11-25T00:00:00Z', end: '2050-11-25T23:59:00Z' }],
hasModerationPrivileges: false,
isGroupTa: false,
isCourseAdmin: true,
isCourseStaff: false,
isUserAdmin: false,
},
});
});
test('return true when blackout dates are active and Role is not Learner', async () => {
const { queryByText } = renderComponent();
expect(queryByText('true')).toBeInTheDocument();
});
});
describe('blackout dates are not active And role is other than Leaner', () => {
beforeEach(async () => {
store = initializeStore({
config: {
blackouts: [],
hasModerationPrivileges: false,
isGroupTa: false,
isCourseAdmin: true,
isCourseStaff: false,
isUserAdmin: false,
},
});
});
test('return true when blackout dates are not active and Role is not Learner', async () => {
const { queryByText } = renderComponent();
expect(queryByText('true')).toBeInTheDocument();
});
});
});
});