Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -105,8 +105,10 @@ import { useOAuthCompleteStep2Query } from '~/modules/auth/queries/useOAuthQuery
import Popup from '~/modules/Common/components/Popup/Popup.vue'
import Button from '~/modules/Common/components/Button/Button.vue'
import { useUserStore } from '~/modules/auth/stores/userStore';
import { validateDateOfBirth } from '../../../utils/validators'
import { y } from 'happy-dom/lib/PropertySymbol.js'
const userStore = useUserStore()
const { locale } = useI18n()
const { locale, t } = useI18n()
const isArabic = computed(() => locale.value === 'ar')

const month = ref('')
Expand Down Expand Up @@ -159,11 +161,14 @@ const oauthCompleteStep1Mutation = useOAuthCompleteStep1Query(
},
(error: any) => {
console.error('OAuth Step 1 Complete Error:', error)
const errorMsg =
error?.response?.data?.message || 'An unexpected error occurred. Please try again.'

if (Array.isArray(errorMsg)) errorMessage.value = errorMsg[0]
else errorMessage.value = errorMsg
const apiMessage = error?.response?.data?.message

// If API returns a string message, use it directly (don't translate backend errors)
if (apiMessage) {
errorMessage.value = apiMessage
} else {
errorMessage.value = t('messages.error')
}
loading.value = false
},
)
Expand Down Expand Up @@ -192,9 +197,13 @@ const onNext = async () => {
month.value && day.value && year.value
? `${year.value}-${month.value.padStart(2, '0')}-${day.value.toString().padStart(2, '0')}`
: ''

const validation = validateDateOfBirth(year.value, month.value, day.value)
if (!validation.valid) {
errorMessage.value = validation.messageKey ? t(validation.messageKey) : t('auth.validation.dobInvalid')
return
}
if (!month.value || !day.value || !year.value) {
errorMessage.value = 'Please select your complete birth date.'
errorMessage.value = t('auth.validation.dobRequired')
return
}

Expand Down
6 changes: 4 additions & 2 deletions app/modules/auth/test/unit/oauthNewAcc.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -327,15 +327,17 @@ describe('OAuth New Account Registration', () => {
await flushPromises();
const selects = wrapper.findAll('select');

// Use a valid birth date (at least 13 years old) - January 1, 2010
await selects[0]?.setValue('1');
await selects[1]?.setValue('1');
await selects[2]?.setValue('2020');
await selects[2]?.setValue('2010');

const form = wrapper.find('form');
await form.trigger('submit.prevent');
await flushPromises();

expect(wrapper.text()).toContain('sa3fan tells you this is error');
const errorElement = wrapper.find('#error-message-oauth-s1');
expect(errorElement.text()).toContain('sa3fan tells you this is error');
});


Expand Down
Loading
Loading