parent
							
								
									dd6569a1bb
								
							
						
					
					
						commit
						116dd097bd
					
				
					 3 changed files with 26 additions and 7 deletions
				
			
		| 
						 | 
				
			
			@ -62,6 +62,10 @@ describe('After setup instance', () => {
 | 
			
		|||
		cy.get('[data-cy-signup-submit]').click();
 | 
			
		||||
 | 
			
		||||
		cy.wait('@signup');
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  it('signup with duplicated username', () => {
 | 
			
		||||
		cy.registerUser('alice', 'alice1234');
 | 
			
		||||
 | 
			
		||||
		cy.visitHome();
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -110,6 +110,8 @@ let ToSAgreement: boolean = $ref(false);
 | 
			
		|||
let hCaptchaResponse = $ref(null);
 | 
			
		||||
let reCaptchaResponse = $ref(null);
 | 
			
		||||
let turnstileResponse = $ref(null);
 | 
			
		||||
let usernameAbortController: null | AbortController = $ref(null);
 | 
			
		||||
let emailAbortController: null | AbortController = $ref(null);
 | 
			
		||||
 | 
			
		||||
const shouldDisableSubmitting = $computed((): boolean => {
 | 
			
		||||
	return submitting ||
 | 
			
		||||
| 
						 | 
				
			
			@ -141,14 +143,20 @@ function onChangeUsername(): void {
 | 
			
		|||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if (usernameAbortController != null) {
 | 
			
		||||
		usernameAbortController.abort();
 | 
			
		||||
	}
 | 
			
		||||
	usernameState = 'wait';
 | 
			
		||||
	usernameAbortController = new AbortController();
 | 
			
		||||
 | 
			
		||||
	os.api('username/available', {
 | 
			
		||||
		username,
 | 
			
		||||
	}).then(result => {
 | 
			
		||||
	}, undefined, usernameAbortController.signal).then(result => {
 | 
			
		||||
		usernameState = result.available ? 'ok' : 'unavailable';
 | 
			
		||||
	}).catch(() => {
 | 
			
		||||
	}).catch((err) => {
 | 
			
		||||
		if (err.name !== 'AbortError') {
 | 
			
		||||
			usernameState = 'error';
 | 
			
		||||
		}
 | 
			
		||||
	});
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -158,11 +166,15 @@ function onChangeEmail(): void {
 | 
			
		|||
		return;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if (emailAbortController != null) {
 | 
			
		||||
		emailAbortController.abort();
 | 
			
		||||
	}
 | 
			
		||||
	emailState = 'wait';
 | 
			
		||||
	emailAbortController = new AbortController();
 | 
			
		||||
 | 
			
		||||
	os.api('email-address/available', {
 | 
			
		||||
		emailAddress: email,
 | 
			
		||||
	}).then(result => {
 | 
			
		||||
	}, undefined, emailAbortController.signal).then(result => {
 | 
			
		||||
		emailState = result.available ? 'ok' :
 | 
			
		||||
			result.reason === 'used' ? 'unavailable:used' :
 | 
			
		||||
			result.reason === 'format' ? 'unavailable:format' :
 | 
			
		||||
| 
						 | 
				
			
			@ -170,8 +182,10 @@ function onChangeEmail(): void {
 | 
			
		|||
			result.reason === 'mx' ? 'unavailable:mx' :
 | 
			
		||||
			result.reason === 'smtp' ? 'unavailable:smtp' :
 | 
			
		||||
			'unavailable';
 | 
			
		||||
	}).catch(() => {
 | 
			
		||||
	}).catch((err) => {
 | 
			
		||||
		if (err.name !== 'AbortError') {
 | 
			
		||||
			emailState = 'error';
 | 
			
		||||
		}
 | 
			
		||||
	});
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -5,7 +5,7 @@ import { $i } from '@/account';
 | 
			
		|||
export const pendingApiRequestsCount = ref(0);
 | 
			
		||||
 | 
			
		||||
// Implements Misskey.api.ApiClient.request
 | 
			
		||||
export function api<E extends keyof Endpoints, P extends Endpoints[E]['req']>(endpoint: E, data: P = {} as any, token?: string | null | undefined): Promise<Endpoints[E]['res']> {
 | 
			
		||||
export function api<E extends keyof Endpoints, P extends Endpoints[E]['req']>(endpoint: E, data: P = {} as any, token?: string | null | undefined, signal?: AbortSignal): Promise<Endpoints[E]['res']> {
 | 
			
		||||
	pendingApiRequestsCount.value++;
 | 
			
		||||
 | 
			
		||||
	const onFinally = () => {
 | 
			
		||||
| 
						 | 
				
			
			@ -26,6 +26,7 @@ export function api<E extends keyof Endpoints, P extends Endpoints[E]['req']>(en
 | 
			
		|||
			headers: {
 | 
			
		||||
				'Content-Type': 'application/json',
 | 
			
		||||
			},
 | 
			
		||||
			signal,
 | 
			
		||||
		}).then(async (res) => {
 | 
			
		||||
			const body = res.status === 204 ? null : await res.json();
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue