slide.test.ts 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. import { init } from '../../../test';
  2. describe( 'Controller#go()', () => {
  3. test( 'can move the slider to the next and previous slide.', () => {
  4. const splide = init( { speed: 0 } );
  5. splide.go( '>' );
  6. expect( splide.index ).toBe( 1 );
  7. splide.go( '>' );
  8. expect( splide.index ).toBe( 2 );
  9. splide.go( '>' );
  10. expect( splide.index ).toBe( 3 );
  11. splide.go( '<' );
  12. expect( splide.index ).toBe( 2 );
  13. splide.go( '<' );
  14. expect( splide.index ).toBe( 1 );
  15. splide.go( '<' );
  16. expect( splide.index ).toBe( 0 );
  17. } );
  18. test( 'can move the slider to the next and previous page.', () => {
  19. const splide = init( { perPage: 2, speed: 0 } );
  20. splide.go( '>' );
  21. expect( splide.index ).toBe( 2 );
  22. splide.go( '>' );
  23. expect( splide.index ).toBe( 4 );
  24. splide.go( '>' );
  25. expect( splide.index ).toBe( 6 );
  26. splide.go( '<' );
  27. expect( splide.index ).toBe( 4 );
  28. splide.go( '<' );
  29. expect( splide.index ).toBe( 2 );
  30. splide.go( '<' );
  31. expect( splide.index ).toBe( 0 );
  32. } );
  33. test( 'should not move the slider if there is no slide before/after the current location.', () => {
  34. const splide = init( { speed: 0 }, { length: 2 } );
  35. splide.go( '<' );
  36. splide.go( '<' );
  37. expect( splide.index ).toBe( 0 );
  38. splide.go( '>' );
  39. splide.go( '>' );
  40. expect( splide.index ).toBe( 1 );
  41. splide.go( '>' );
  42. splide.go( '>' );
  43. expect( splide.index ).toBe( 1 );
  44. } );
  45. test( 'should not move the slider if it reaches the end index.', () => {
  46. // The end index is 1
  47. const splide = init( { perPage: 3 }, { length: 4 } );
  48. expect( splide.index ).toBe( 0 );
  49. splide.go( '>' );
  50. expect( splide.index ).toBe( 1 );
  51. splide.go( '>' );
  52. expect( splide.index ).toBe( 1 );
  53. } );
  54. test( 'can increase the slide index by + or decrease it by -.', () => {
  55. const splide = init( { speed: 0 } );
  56. splide.go( '+' );
  57. expect( splide.index ).toBe( 1 );
  58. splide.go( '+2' );
  59. expect( splide.index ).toBe( 3 );
  60. splide.go( '+3' );
  61. expect( splide.index ).toBe( 6 );
  62. splide.go( '-' );
  63. expect( splide.index ).toBe( 5 );
  64. splide.go( '-2' );
  65. expect( splide.index ).toBe( 3 );
  66. splide.go( '-3' );
  67. expect( splide.index ).toBe( 0 );
  68. splide.go( '-' );
  69. expect( splide.index ).toBe( 0 );
  70. } );
  71. test( 'can move the slider to the specified index.', () => {
  72. const splide = init( { speed: 0 } );
  73. splide.go( 2 );
  74. expect( splide.index ).toBe( 2 );
  75. splide.go( 4 );
  76. expect( splide.index ).toBe( 4 );
  77. splide.go( 100 );
  78. expect( splide.index ).toBe( splide.length - 1 );
  79. splide.go( -100 );
  80. expect( splide.index ).toBe( 0 );
  81. } );
  82. test( 'can move the slider to the end page.', () => {
  83. const splide = init( { speed: 0 } );
  84. splide.go( '>|' );
  85. expect( splide.index ).toBe( splide.length - 1 );
  86. } );
  87. } );