general.test.ts 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. import { findRuleBy, init } from '../../../test';
  2. describe( 'Style', () => {
  3. test( 'can create a style element and append it to the head element.', () => {
  4. const splide = init();
  5. const style = document.head.lastElementChild;
  6. expect( style instanceof HTMLStyleElement ).toBe( true );
  7. if ( style instanceof HTMLStyleElement ) {
  8. const { cssRules } = style.sheet;
  9. const listRule = Array.prototype.find.call( cssRules, ( cssRule: CSSStyleRule ) => {
  10. return cssRule.selectorText === `#${ splide.Components.Elements.list.id }`;
  11. } );
  12. expect( listRule ).not.toBeUndefined();
  13. expect( listRule.style.transform ).toBe( 'translateX(0%)' );
  14. }
  15. splide.destroy();
  16. } );
  17. test( 'can add a style by a selector.', () => {
  18. const splide = init();
  19. const { rule } = splide.Components.Style;
  20. rule( `#${ splide.root.id }`, 'opacity', 0.5 );
  21. const rules = findRuleBy( splide.root );
  22. expect( rules.style.opacity ).toBe( '0.5' );
  23. splide.destroy();
  24. } );
  25. test( 'can add a style by an element.', () => {
  26. const splide = init();
  27. const { ruleBy } = splide.Components.Style;
  28. ruleBy( splide.root, 'opacity', 0.4 );
  29. const rules = findRuleBy( splide.root );
  30. expect( rules.style.opacity ).toBe( '0.4' );
  31. splide.destroy();
  32. } );
  33. test( 'can remove the style element on destroy.', () => {
  34. const splide = init();
  35. expect( document.head.lastElementChild instanceof HTMLStyleElement ).toBe( true );
  36. splide.destroy();
  37. expect( document.head.lastElementChild ).toBeNull();
  38. } );
  39. } );