test.js 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. import test from 'ava'
  2. import { transform } from 'babel-core'
  3. const transpile = src => {
  4. return transform(src, {
  5. plugins: './index'
  6. }).code.trim()
  7. }
  8. test('Generic functional export', t => {
  9. t.is(
  10. transpile(`export const a = ({ props, listeners }) => <div onClick={listeners.click}>{props.msg}</div>`),
  11. `export const a = {
  12. functional: true,
  13. render: (h, { props, listeners }) => <div onClick={listeners.click}>{props.msg}</div>
  14. };`
  15. )
  16. })
  17. test('Generic functional component', t => {
  18. t.is(
  19. transpile(`const a = ({ props, listeners }) => <div onClick={listeners.click}>{props.msg}</div>`),
  20. `const a = {
  21. functional: true,
  22. render: (h, { props, listeners }) => <div onClick={listeners.click}>{props.msg}</div>
  23. };`
  24. )
  25. })
  26. test('Generic functional export with "name" when NODE_ENV === "development"', t => {
  27. const nodeEnv = process.env.NODE_ENV
  28. process.env.NODE_ENV = 'development'
  29. t.is(
  30. transpile(`export const a = ({ props, listeners }) => <div onClick={listeners.click}>{props.msg}</div>`),
  31. `export const a = {
  32. name: "a",
  33. functional: true,
  34. render: (h, { props, listeners }) => <div onClick={listeners.click}>{props.msg}</div>
  35. };`
  36. )
  37. process.env.NODE_ENV = nodeEnv
  38. })
  39. test('Generic functional component with "name" when NODE_ENV === "development"', t => {
  40. const nodeEnv = process.env.NODE_ENV
  41. process.env.NODE_ENV = 'development'
  42. t.is(
  43. transpile(`const a = ({ props, listeners }) => <div onClick={listeners.click}>{props.msg}</div>`),
  44. `const a = {
  45. name: "a",
  46. functional: true,
  47. render: (h, { props, listeners }) => <div onClick={listeners.click}>{props.msg}</div>
  48. };`
  49. )
  50. process.env.NODE_ENV = nodeEnv
  51. })