[
  {
    "tags": [],
    "description": {
      "full": "",
      "summary": "",
      "body": ""
    },
    "isPrivate": false,
    "isConstructor": false,
    "line": 1,
    "codeStart": null,
    "code": "import {$, dom, Id} from 'aire/core/dom';\n\nlet el: HTMLDivElement;\nbeforeEach(() => {\n  el = $.createElement('div');\n});\n\nafterEach(() => {\n  el.remove();\n});\n\ntest('ensure is-ancestor returns true when element is ancestor', () => {\n  let el = $.createElement('div'),\n    child = $.createElement('div');\n  el.append(child);\n  expect(dom.isAncestor(child, el)).toBeTruthy();\n});\n\n\n\ntest('ensure is-ancestor locates itself', () => {\n  let el = $.createElement('div');\n  expect(dom.isAncestor(el, el)).toBeTruthy();\n});\n\ntest(\"ensure pathTo returns selector string if supplied\", () => {\n  let hostOrSelector = \".myClass\";\n  expect(dom.pathTo(hostOrSelector)).toBe(hostOrSelector);\n});\n\ntest(\"ensure pathTo returns current element if id is present\", () => {\n  el.setAttribute(\"id\", \"myId\");\n  expect(dom.pathTo(el)).toBe(\"div#myId\");\n});\n\ntest(\"ensure pathTo traverses up DOM to get best selector sensibly\", () => {\n  let child = $.createElement('div'),\n      grandChild = $.createElement('div');\n  el.append(child);\n  child.append(grandChild);\n  el.setAttribute(\"id\", \"myId\");\n  expect(dom.pathTo(grandChild)).toBe(\"div#myId > div > div\")\n});\n\ntest(\"ensure decorate-to applies class when class name is provided\", () => {\n    let sourceEl = $.createElement('div'),\n        el = $.createElement('div');\n    sourceEl.setAttribute(\"something\", \"something\");\n    dom.decorateTo(sourceEl, el, \"something\", \"myClass\");\n    expect(el.classList).toContain(\"myClass\");\n});\n\ntest(\"ensure decorate-to applies decorator as class name\", () => {\n    let sourceEl = $.createElement('div'),\n        el = $.createElement('div');\n    sourceEl.setAttribute(\"something\", \"something\");\n    dom.decorateTo(sourceEl, el, \"something\");\n    expect(el.classList).toContain(\"something\");\n});\n\ntest('ensure decorate adds class with no className', () => {\n  el.setAttribute(\"test\", \"\");\n  dom.decorate(el, 'test');\n  expect(el.classList.contains('test')).toBeTruthy();\n});\n\ntest('ensure decorate adds class with className', () => {\n    el.setAttribute(\"test\", \"\");\n    dom.decorate(el, 'test', 'testy');\n    expect(el.classList.contains('testy')).toBeTruthy();\n});\n\ntest('ensure generated decorates object correctly', () => {\n\n  class A {\n    @Id()\n    s:string;\n  }\n\n\n  let a = new A();\n  let b = a.s;\n  expect(b.startsWith('aire')).toBeTruthy();\n});",
    "ctx": false
  }
]