TestUtils.ts 1.1 KB

1234567891011121314151617181920
  1. const className = (classNameStartsWith: string, useContains?: boolean) => `[class${useContains ? '*' : '^'}=${classNameStartsWith}]`
  2. export default {
  3. select: (name: string, parent?: Element) => (parent || document).querySelector<HTMLElement>(className(name)),
  4. selectInput: (name: string, parent?: Element) => (parent || document).querySelector<HTMLInputElement>(className(name)),
  5. selectContains: (name: string, parent?: Element) => (parent || document).querySelector<HTMLElement>(className(name, true)),
  6. selectAll: (name: string, parent?: Element) => (parent || document).querySelectorAll<HTMLElement>(className(name)),
  7. rgbToHex: (rgb: string) => {
  8. const componentToHex = (c: number) => {
  9. const hex = c.toString(16).toUpperCase()
  10. return hex.length === 1 ? `0${hex}` : hex
  11. }
  12. const matches = /rgb\((\d+), (\d+), (\d+)\)/.exec(rgb)
  13. if (matches) {
  14. const transform = (match: string) => componentToHex(parseInt(match, 10))
  15. return `#${transform(matches[1])}${transform(matches[2])}${transform(matches[3])}`
  16. }
  17. return rgb
  18. },
  19. }