[
  {
    "tags": [],
    "description": {
      "full": "",
      "summary": "",
      "body": ""
    },
    "isPrivate": false,
    "isConstructor": false,
    "line": 1,
    "codeStart": null,
    "code": "import 'reflect-metadata';\nimport 'aurelia-polyfills';\n\nimport {bootstrap}      from 'aurelia-bootstrapper';\nimport {newComponent} from \"test/render\";\n\n\nlet component : any;\n\n\nfunction initialize(bindingContext : any, templateString ?: string) {\n  let template = templateString ? templateString : `\n  aire-fab(icon.bind=\"icon\")\n  `;\n\n  component = newComponent(template, bindingContext, \"button/fab\", \"icon/icon\");\n}\n\nafterEach(() => {\n  component.dispose();\n});\n\ntest(\"a button must initialize\", async (done) => {\n    initialize({icon : \"Hello\"});\n    await component.create(bootstrap);\n    let button = document.querySelector('.aire-fab');\n    expect(button).toBeTruthy();\n    done();\n});\n\ntest(\"a button's icon must be bindable with a class\", async (done) => {\n  initialize({icon : \"Hello\"});\n  await component.create(bootstrap);\n  let button = document.querySelector('.uk-button.aire-fab span');\n  expect(button.classList.contains(\"Hello\")).toBeTruthy();\n  done();\n});\n\ntest(\"a button's icon must be bindable with a url\", async (done) => {\n    initialize({icon : \"hello.png\"});\n    await component.create(bootstrap);\n    let button = document.querySelector('.uk-button.aire-fab img');\n    expect(button).toBeTruthy();\n    done();\n});\n\ntest(\"a button must have set edges\", async (done) => {\n    initialize({});\n    await component.create(bootstrap);\n    let button = document.querySelector('.uk-button.aire-fab') as HTMLElement,\n        style = Object.keys((button.style as any)._importants);\n    expect(style).toContain(\"top\");\n    expect(style).toContain(\"right\");\n    expect(style).toContain(\"bottom\");\n    expect(style).toContain(\"left\");\n    done(); //TODO determine way to test this that actually checks values\n});\n\ntest(\"a button should go disabled when true in binding context\", async (done) => {\n    initialize({disabled : \"true\"}, `\naire-fab(disabled.bind=\"disabled\")\n  `);\n    await component.create(bootstrap);\n    let button = document.querySelector('.uk-button.aire-fab') as any;\n    expect(button.disabled).toBeTruthy();\n    done();\n});\n\ntest(\"a button should not go disabled when false in binding context\", async (done) => {\n    initialize({disabled : \"false\"}, `\naire-fab(disabled.bind=\"disabled\")\n  `);\n    await component.create(bootstrap);\n    let button = document.querySelector('.uk-button.aire-fab') as any;\n    expect(button.disabled).toBeTruthy();\n    done();\n});\n\ntest(\"a button should not go disabled when not in binding context\", async (done) => {\n    initialize({}, `\naire-fab(label.bind=\"textLabel\")\n  `);\n    await component.create(bootstrap);\n    let button = document.querySelector('.uk-button.aire-fab') as any;\n    expect(button.disabled).toBeFalsy();\n    done();\n});\n\ntest(\"a button can take a default argument\", async(done) => {\n  initialize({}, `\naire-fab(label.bind=\"textLabel\", icon.bind=\"icon\" default)\n  `);\n    await component.create(bootstrap);\n    let button = document.querySelector('.uk-button.aire-fab.uk-button-default');\n    expect(button).toBeTruthy();\n    done();\n});\n\ntest(\"a button can take a primary argument\", async(done) => {\n    initialize({}, `\naire-fab(label.bind=\"textLabel\", icon.bind=\"icon\" primary)\n  `);\n    await component.create(bootstrap);\n    let button = document.querySelector('.uk-button.aire-fab.uk-button-primary');\n    expect(button).toBeTruthy();\n    done();\n});\n\ntest(\"a button can take a secondary argument\", async(done) => {\n    initialize({}, `\naire-fab(label.bind=\"textLabel\", icon.bind=\"icon\" secondary)\n  `);\n    await component.create(bootstrap);\n    let button = document.querySelector('.uk-button.aire-fab.uk-button-secondary');\n    expect(button).toBeTruthy();\n    done();\n});\n\ntest(\"a button can take a danger argument\", async(done) => {\n    initialize({}, `\naire-fab(label.bind=\"textLabel\", icon.bind=\"icon\" danger)\n  `);\n    await component.create(bootstrap);\n    let button = document.querySelector('.uk-button.aire-fab.uk-button-danger');\n    expect(button).toBeTruthy();\n    done();\n});",
    "ctx": false
  }
]