mirror of
https://github.com/IT4Change/gradido.git
synced 2026-02-06 09:56:05 +00:00
fix add add tests
This commit is contained in:
parent
2b77caa51e
commit
4665d42405
@ -14,6 +14,7 @@ describe('ContributionMessagesFormular', () => {
|
||||
const propsData = {
|
||||
contributionId: 42,
|
||||
contributionMemo: 'It is a test memo',
|
||||
hideResubmission: true,
|
||||
}
|
||||
|
||||
const mocks = {
|
||||
@ -95,13 +96,14 @@ describe('ContributionMessagesFormular', () => {
|
||||
await wrapper.find('button[data-test="submit-dialog"]').trigger('click')
|
||||
})
|
||||
|
||||
it('moderatorMesage has `DIALOG`', () => {
|
||||
it('moderatorMessage has `DIALOG`', () => {
|
||||
expect(apolloMutateMock).toBeCalledWith({
|
||||
mutation: adminCreateContributionMessage,
|
||||
variables: {
|
||||
contributionId: 42,
|
||||
message: 'text form message',
|
||||
messageType: 'DIALOG',
|
||||
resubmissionAt: null,
|
||||
},
|
||||
})
|
||||
})
|
||||
@ -128,6 +130,7 @@ describe('ContributionMessagesFormular', () => {
|
||||
contributionId: 42,
|
||||
message: 'text form message',
|
||||
messageType: 'MODERATOR',
|
||||
resubmissionAt: null,
|
||||
},
|
||||
})
|
||||
})
|
||||
@ -137,6 +140,53 @@ describe('ContributionMessagesFormular', () => {
|
||||
})
|
||||
})
|
||||
|
||||
describe('send resubmission contribution message with success', () => {
|
||||
const futureDate = new Date(Date.now() + 7 * 24 * 60 * 60 * 1000) // 7 days in milliseconds
|
||||
|
||||
beforeEach(async () => {
|
||||
await wrapper.setData({
|
||||
form: {
|
||||
text: 'text form message',
|
||||
},
|
||||
showResubmissionDate: true,
|
||||
resubmissionDate: futureDate,
|
||||
resubmissionTime: '08:46',
|
||||
})
|
||||
await wrapper.find('button[data-test="submit-moderator"]').trigger('click')
|
||||
})
|
||||
|
||||
it('graphql payload contain resubmission date', () => {
|
||||
const futureDateExactTime = futureDate
|
||||
futureDateExactTime.setHours(8)
|
||||
futureDateExactTime.setMinutes(46)
|
||||
expect(apolloMutateMock).toBeCalledWith({
|
||||
mutation: adminCreateContributionMessage,
|
||||
variables: {
|
||||
contributionId: 42,
|
||||
message: 'text form message',
|
||||
messageType: 'MODERATOR',
|
||||
resubmissionAt: futureDateExactTime.toString(),
|
||||
},
|
||||
})
|
||||
})
|
||||
|
||||
it('toasts an success message', () => {
|
||||
expect(toastSuccessSpy).toBeCalledWith('message.request')
|
||||
})
|
||||
})
|
||||
|
||||
describe('set memo', () => {
|
||||
beforeEach(async () => {
|
||||
await wrapper.setData({
|
||||
chatOrMemo: 0,
|
||||
})
|
||||
await wrapper.find('button[data-test="submit-memo"]').trigger('click')
|
||||
})
|
||||
it('check chatOrMemo value is 1', () => {
|
||||
expect(wrapper.vm.chatOrMemo).toBe(1)
|
||||
})
|
||||
})
|
||||
|
||||
describe('update contribution memo from moderator for user created contributions', () => {
|
||||
beforeEach(async () => {
|
||||
await wrapper.setData({
|
||||
|
||||
@ -114,15 +114,11 @@ export default {
|
||||
},
|
||||
methods: {
|
||||
combineResubmissionDateAndTime() {
|
||||
if (this.resubmissionDate) {
|
||||
const formattedDate = new Date(this.resubmissionDate)
|
||||
const [hours, minutes] = this.resubmissionTime.split(':')
|
||||
formattedDate.setHours(parseInt(hours))
|
||||
formattedDate.setMinutes(parseInt(minutes))
|
||||
return formattedDate
|
||||
} else {
|
||||
return null
|
||||
}
|
||||
const formattedDate = new Date(this.resubmissionDate)
|
||||
const [hours, minutes] = this.resubmissionTime.split(':')
|
||||
formattedDate.setHours(parseInt(hours))
|
||||
formattedDate.setMinutes(parseInt(minutes))
|
||||
return formattedDate
|
||||
},
|
||||
onSubmit(mType) {
|
||||
this.loading = true
|
||||
@ -196,7 +192,8 @@ export default {
|
||||
return (
|
||||
(this.chatOrMemo === 0 && this.form.text === '') ||
|
||||
this.loading ||
|
||||
(this.chatOrMemo === 1 && this.form.memo.length < 5)
|
||||
(this.chatOrMemo === 1 && this.form.memo.length < 5) ||
|
||||
(this.showResubmissionDate && !this.resubmissionDate)
|
||||
)
|
||||
},
|
||||
moderatorDisabled() {
|
||||
|
||||
@ -89,6 +89,7 @@ describe('ContributionMessagesList', () => {
|
||||
contributionMemo: 'test memo',
|
||||
contributionUserId: 108,
|
||||
contributionStatus: 'PENDING',
|
||||
hideResubmission: true,
|
||||
}
|
||||
|
||||
const mocks = {
|
||||
@ -155,5 +156,15 @@ describe('ContributionMessagesList', () => {
|
||||
expect(wrapper.emitted('reload-contribution')[0]).toEqual([3])
|
||||
})
|
||||
})
|
||||
|
||||
describe('test update-contributions', () => {
|
||||
beforeEach(() => {
|
||||
wrapper.vm.updateContributions()
|
||||
})
|
||||
|
||||
it('emits update-contributions', () => {
|
||||
expect(wrapper.emitted('update-contributions')).toBeTruthy()
|
||||
})
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
@ -70,6 +70,7 @@ const propsData = {
|
||||
{ key: 'confirm', label: 'save' },
|
||||
],
|
||||
toggleDetails: false,
|
||||
hideResubmission: true,
|
||||
}
|
||||
|
||||
const mocks = {
|
||||
|
||||
63
admin/src/components/input/TimePicker.spec.js
Normal file
63
admin/src/components/input/TimePicker.spec.js
Normal file
@ -0,0 +1,63 @@
|
||||
import { mount } from '@vue/test-utils'
|
||||
import TimePicker from './TimePicker.vue'
|
||||
|
||||
describe('TimePicker', () => {
|
||||
it('updates timeValue on input and emits input event', async () => {
|
||||
const wrapper = mount(TimePicker, {
|
||||
propsData: {
|
||||
value: '12:34', // Set an initial value for testing
|
||||
},
|
||||
})
|
||||
|
||||
const input = wrapper.find('input[type="text"]')
|
||||
|
||||
// Simulate user input
|
||||
await input.setValue('23:45')
|
||||
|
||||
// Check if timeValue is updated
|
||||
expect(wrapper.vm.timeValue).toBe('23:45')
|
||||
|
||||
// Check if input event is emitted with updated value
|
||||
expect(wrapper.emitted().input).toBeTruthy()
|
||||
expect(wrapper.emitted().input[0]).toEqual(['23:45'])
|
||||
})
|
||||
|
||||
it('validates and corrects time format on blur', async () => {
|
||||
const wrapper = mount(TimePicker)
|
||||
|
||||
const input = wrapper.find('input[type="text"]')
|
||||
|
||||
// Simulate user input
|
||||
await input.setValue('99:99')
|
||||
expect(wrapper.emitted().input).toBeTruthy()
|
||||
expect(wrapper.emitted().input[0]).toEqual(['99:99'])
|
||||
|
||||
// Trigger blur event
|
||||
await input.trigger('blur')
|
||||
|
||||
// Check if timeValue is corrected to valid format
|
||||
expect(wrapper.vm.timeValue).toBe('23:59') // Maximum allowed value for hours and minutes
|
||||
|
||||
// Check if input event is emitted with corrected value
|
||||
expect(wrapper.emitted().input).toBeTruthy()
|
||||
expect(wrapper.emitted().input[1]).toEqual(['23:59'])
|
||||
})
|
||||
|
||||
it('check handling of empty input', async () => {
|
||||
const wrapper = mount(TimePicker)
|
||||
const input = wrapper.find('input[type="text"]')
|
||||
|
||||
// Simulate user input with non-numeric characters
|
||||
await input.setValue('')
|
||||
|
||||
// Trigger blur event
|
||||
await input.trigger('blur')
|
||||
|
||||
// Check if non-numeric characters are filtered out
|
||||
expect(wrapper.vm.timeValue).toBe('00:00')
|
||||
|
||||
// Check if input event is emitted with filtered value
|
||||
expect(wrapper.emitted().input).toBeTruthy()
|
||||
expect(wrapper.emitted().input[1]).toEqual(['00:00'])
|
||||
})
|
||||
})
|
||||
@ -36,8 +36,8 @@ export default {
|
||||
let [hours, minutes] = this.timeValue.split(':')
|
||||
|
||||
// Validate hours and minutes
|
||||
hours = Math.min(Math.max(parseInt(hours) || 0, 0), 23)
|
||||
minutes = Math.min(Math.max(parseInt(minutes) || 0, 0), 59)
|
||||
hours = Math.min(parseInt(hours) || 0, 23)
|
||||
minutes = Math.min(parseInt(minutes) || 0, 59)
|
||||
|
||||
// Update the value with correct format
|
||||
this.timeValue = `${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}`
|
||||
|
||||
@ -347,6 +347,7 @@ describe('CreationConfirm', () => {
|
||||
it('refetches contributions with proper filter', () => {
|
||||
expect(adminListContributionsMock).toBeCalledWith({
|
||||
currentPage: 1,
|
||||
hideResubmission: false,
|
||||
noHashtag: null,
|
||||
order: 'DESC',
|
||||
pageSize: 25,
|
||||
@ -364,6 +365,7 @@ describe('CreationConfirm', () => {
|
||||
it('refetches contributions with proper filter', () => {
|
||||
expect(adminListContributionsMock).toBeCalledWith({
|
||||
currentPage: 1,
|
||||
hideResubmission: true,
|
||||
noHashtag: null,
|
||||
order: 'DESC',
|
||||
pageSize: 25,
|
||||
@ -382,6 +384,7 @@ describe('CreationConfirm', () => {
|
||||
it('refetches contributions with proper filter', () => {
|
||||
expect(adminListContributionsMock).toBeCalledWith({
|
||||
currentPage: 1,
|
||||
hideResubmission: false,
|
||||
noHashtag: null,
|
||||
order: 'DESC',
|
||||
pageSize: 25,
|
||||
@ -400,6 +403,7 @@ describe('CreationConfirm', () => {
|
||||
it('refetches contributions with proper filter', () => {
|
||||
expect(adminListContributionsMock).toBeCalledWith({
|
||||
currentPage: 1,
|
||||
hideResubmission: false,
|
||||
noHashtag: null,
|
||||
order: 'DESC',
|
||||
pageSize: 25,
|
||||
@ -418,6 +422,7 @@ describe('CreationConfirm', () => {
|
||||
it('refetches contributions with proper filter', () => {
|
||||
expect(adminListContributionsMock).toBeCalledWith({
|
||||
currentPage: 1,
|
||||
hideResubmission: false,
|
||||
noHashtag: null,
|
||||
order: 'DESC',
|
||||
pageSize: 25,
|
||||
@ -440,6 +445,7 @@ describe('CreationConfirm', () => {
|
||||
it('calls the API again', () => {
|
||||
expect(adminListContributionsMock).toBeCalledWith({
|
||||
currentPage: 2,
|
||||
hideResubmission: false,
|
||||
noHashtag: null,
|
||||
order: 'DESC',
|
||||
pageSize: 25,
|
||||
@ -457,6 +463,7 @@ describe('CreationConfirm', () => {
|
||||
it('refetches contributions with proper filter and current page = 1', () => {
|
||||
expect(adminListContributionsMock).toBeCalledWith({
|
||||
currentPage: 1,
|
||||
hideResubmission: true,
|
||||
noHashtag: null,
|
||||
order: 'DESC',
|
||||
pageSize: 25,
|
||||
@ -480,6 +487,7 @@ describe('CreationConfirm', () => {
|
||||
it('calls the API with query', () => {
|
||||
expect(adminListContributionsMock).toBeCalledWith({
|
||||
currentPage: 1,
|
||||
hideResubmission: true,
|
||||
noHashtag: null,
|
||||
order: 'DESC',
|
||||
pageSize: 25,
|
||||
@ -496,6 +504,7 @@ describe('CreationConfirm', () => {
|
||||
it('calls the API with empty query', () => {
|
||||
expect(adminListContributionsMock).toBeCalledWith({
|
||||
currentPage: 1,
|
||||
hideResubmission: true,
|
||||
noHashtag: null,
|
||||
order: 'DESC',
|
||||
pageSize: 25,
|
||||
|
||||
@ -116,6 +116,7 @@ describe('Overview', () => {
|
||||
it('calls the adminListContributions query', () => {
|
||||
expect(adminListContributionsMock).toBeCalledWith({
|
||||
currentPage: 1,
|
||||
hideResubmission: true,
|
||||
order: 'DESC',
|
||||
pageSize: 25,
|
||||
statusFilter: ['IN_PROGRESS', 'PENDING'],
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user