MOBILE-4081 core: Fix cancelling textarea prompts
parent
c94785a94f
commit
b95182cbf9
|
@ -18,6 +18,7 @@ import { AlertController, Translate } from '@singletons';
|
||||||
import { mock, mockSingleton, mockTranslate } from '@/testing/utils';
|
import { mock, mockSingleton, mockTranslate } from '@/testing/utils';
|
||||||
import { CoreSiteError } from '@classes/errors/siteerror';
|
import { CoreSiteError } from '@classes/errors/siteerror';
|
||||||
import { CoreSites } from '@services/sites';
|
import { CoreSites } from '@services/sites';
|
||||||
|
import { OverlayEventDetail } from '@ionic/core';
|
||||||
|
|
||||||
describe('CoreDomUtilsProvider', () => {
|
describe('CoreDomUtilsProvider', () => {
|
||||||
|
|
||||||
|
@ -56,4 +57,30 @@ describe('CoreDomUtilsProvider', () => {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('ignores alert inputs on cancel', async () => {
|
||||||
|
// Arrange.
|
||||||
|
const mockAlert = mock<HTMLIonAlertElement>({
|
||||||
|
present: () => Promise.resolve(),
|
||||||
|
onWillDismiss: () => Promise.resolve({
|
||||||
|
data: {
|
||||||
|
values: {
|
||||||
|
'textarea-prompt': 'Not empty!',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
role: 'cancel',
|
||||||
|
} as OverlayEventDetail<any>), // eslint-disable-line @typescript-eslint/no-explicit-any
|
||||||
|
});
|
||||||
|
|
||||||
|
mockSingleton(AlertController, mock({ create: () => Promise.resolve(mockAlert) }));
|
||||||
|
|
||||||
|
// Act.
|
||||||
|
const result = await domUtils.showTextareaPrompt('Age', 'How old are you?', [
|
||||||
|
{ text: 'Cancel', role: 'cancel' },
|
||||||
|
{ text: 'Save' },
|
||||||
|
]);
|
||||||
|
|
||||||
|
// Assert.
|
||||||
|
expect(result).toBeUndefined();
|
||||||
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
|
@ -1659,6 +1659,10 @@ export class CoreDomUtilsProvider {
|
||||||
|
|
||||||
const result = await alert.onWillDismiss();
|
const result = await alert.onWillDismiss();
|
||||||
|
|
||||||
|
if (result.role === 'cancel') {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
return result.data?.values?.['textarea-prompt'];
|
return result.data?.values?.['textarea-prompt'];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue