@instructure/quiz-grading
Version:
The Quiz React SDK by Instructure Inc.
69 lines (61 loc) • 2.23 kB
JavaScript
import React from 'react'
import {expect, describe, it} from 'vitest'
import {render, screen} from '../../../../../../tests/utils/rtlRenderOverride'
import {Item as ItemRecord} from '@instructure/quiz-core/common/records/Item'
import {SessionItem as SessionItemRecord} from '@instructure/quiz-core/common/records/SessionItem'
import runAxeCheck from '@instructure/ui-axe-check'
import {SessionItemResultWrapper} from '../index'
describe('SessionItemResultWrapper', () => {
const id = '1'
const item = new ItemRecord({id})
item.getInteractionType = () => ({slug: 'foo', isSubjective: false})
const sessionItem = new SessionItemRecord({id, item, position: 1, questionNumber: 1})
const props = {
activeQuizSessionId: '1',
handleChangeFeedback: Function.prototype,
handleChangeGradeStatus: Function.prototype,
handleChangePoints: Function.prototype,
isRegrading: false,
item,
regradingKey: 'someKey',
renderUpdateButton: Function.prototype,
sessionItem,
shouldRenderTopBorder: false,
quizSessionId: '1',
}
const defaultState = {
activeQuizSessionId: '1',
handleChangeFeedback: Function.prototype,
handleChangeGradeStatus: Function.prototype,
handleChangePoints: Function.prototype,
isRegrading: false,
item,
regradingKey: 'someKey',
sessionItem,
shouldRenderTopBorder: false,
quizSessionId: '1',
sessionItemResults: {
[id]: {id, score: 0},
},
quizSessions: {
activeQuizSessionId: '1',
},
ui: {
appContainer: '.root',
},
}
it('renders a session item result component', () => {
render(<SessionItemResultWrapper {...defaultState} {...props} />)
expect(screen.getByText(/Results for question/i)).toBeInTheDocument()
})
it('renders the grading bar component', () => {
render(<SessionItemResultWrapper {...defaultState} {...props} />)
expect(screen.getByText(/Edit Grader Level Feedback/)).toBeInTheDocument()
})
describe('a11y tests', () => {
it('should meet a11y standards', async () => {
render(<SessionItemResultWrapper {...defaultState} {...props} />)
expect(await runAxeCheck(document.body, {ignores: ['region']})).toBe(true)
})
})
})