index.spec.js 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. import Toast from '..';
  2. import { transitionStub, later } from '../../../test/utils';
  3. transitionStub();
  4. test('create a forbidClick toast', async () => {
  5. const toast = Toast({
  6. forbidClick: true,
  7. type: 'success'
  8. });
  9. expect(toast.$el.outerHTML).toMatchSnapshot();
  10. await later();
  11. expect(document.body.classList.contains('van-toast--unclickable')).toBeTruthy();
  12. toast.forbidClick = false;
  13. await later();
  14. expect(document.body.classList.contains('van-toast--unclickable')).toBeFalsy();
  15. });
  16. it('toast disappeared after duration', async () => {
  17. const toast = Toast({
  18. duration: 10
  19. });
  20. await later(50);
  21. expect(toast.$el.style.display).toEqual('none');
  22. });
  23. test('clear toast', () => {
  24. const toast1 = Toast();
  25. expect(toast1.value).toBeTruthy();
  26. Toast.clear();
  27. expect(toast1.value).toBeFalsy();
  28. Toast.allowMultiple();
  29. const toast2 = Toast('2');
  30. const toast3 = Toast('3');
  31. Toast.clear(true);
  32. expect(toast2.value).toBeFalsy();
  33. expect(toast3.value).toBeFalsy();
  34. Toast.allowMultiple(false);
  35. });
  36. test('multiple toast', () => {
  37. Toast.allowMultiple();
  38. Toast.clear(true);
  39. const toast1 = Toast.success('1');
  40. const toast2 = Toast.success('2');
  41. Toast.clear();
  42. expect(toast1.value).toBeFalsy();
  43. expect(toast2.value).toBeTruthy();
  44. Toast.clear();
  45. Toast.clear();
  46. expect(toast2.value).toBeFalsy();
  47. Toast.allowMultiple(false);
  48. });
  49. test('set default options', () => {
  50. Toast.setDefaultOptions({ duration: 1000 });
  51. expect(Toast().duration).toEqual(1000);
  52. Toast.resetDefaultOptions();
  53. expect(Toast().duration).toEqual(3000);
  54. });
  55. test('toast duration 0', () => {
  56. Toast.allowMultiple();
  57. const toast = Toast({
  58. message: 'toast',
  59. duration: 0
  60. });
  61. expect(toast.timer).toBeFalsy();
  62. Toast.allowMultiple(false);
  63. });
  64. test('onClose callback', () => {
  65. Toast.allowMultiple();
  66. const onClose = jest.fn();
  67. const toast = Toast({
  68. message: 'toast',
  69. onClose
  70. });
  71. toast.clear();
  72. Toast.allowMultiple(false);
  73. expect(onClose).toHaveBeenCalledTimes(1);
  74. });