[
  {
    "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 = '', ...modNames: string[]) {\n  let template = templateString ? templateString : `\n  aire-button(label.bind=\"textLabel\", icon.bind=\"icon\")\n  `;\n  component = newComponent(template, bindingContext, 'button/button');\n}\n\nafterEach(() => {\n  component.dispose();\n});\n\ntest(\"a button's text must be bindable\", async (done) => {\n  initialize({textLabel : \"Hello\"});\n  await component.create(bootstrap);\n  let button = document.querySelector('.uk-button');\n  expect(button.textContent).toBe(\"Hello\");\n  done();\n});\n\ntest(\"a button must not have an icon when icon is not present in binding context\", async (done) => {\n  initialize({textLabel : \"Hello\"});\n  await component.create(bootstrap);\n  let button = document.querySelector('.uk-button');\n  expect(button.firstElementChild).toBeFalsy();\n  done();\n});\n\ntest(\"a button have an icon when icon is not present in binding context\", async (done) => {\n  initialize({textLabel : \"Hello\", icon : \"Helloworld\"});\n  await component.create(bootstrap);\n  let button = document.querySelector('.uk-button');\n  expect(button.firstElementChild).toBeTruthy();\n  done();\n});\n\ntest(\"a button should go disabled when true in binding context\", async (done) => {\n    initialize({textLabel : \"Hello\", disabled : \"true\"}, `\naire-button(label.bind=\"textLabel\" disabled.bind=\"disabled\")\n  `);\n    await component.create(bootstrap);\n    let button = document.querySelector('.uk-button') 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({textLabel : \"Hello\", disabled : \"false\"}, `\naire-button(label.bind=\"textLabel\" disabled.bind=\"disabled\")\n  `);\n    await component.create(bootstrap);\n    let button = document.querySelector('.uk-button') 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({textLabel : \"Hello\"}, `\naire-button(label.bind=\"textLabel\")\n  `);\n    await component.create(bootstrap);\n    let button = document.querySelector('.uk-button') as any;\n    expect(button.disabled).toBeFalsy();\n    done();\n});\n\ntest(\"a button can have a type\", async (done) => {\n    initialize({textLabel : \"Hello\", type: \"reset\"}, `\naire-button(label.bind=\"textLabel\" type.bind=\"type\")\n  `);\n    await component.create(bootstrap);\n    let button = document.querySelector('.uk-button') as HTMLButtonElement;\n    expect(button.type).toBe(\"reset\");\n    done();\n});\n\ntest(\"a button can not have a type\", async (done) => {\n    initialize({textLabel : \"Hello\"}, `\naire-button(label.bind=\"textLabel\" type.bind=\"type\")\n  `);\n    await component.create(bootstrap);\n    let button = document.querySelector('.uk-button') as HTMLButtonElement;\n    expect(button.type).toBe(\"submit\");\n    done();\n});\n\ntest(\"a button can take a default argument\", async(done) => {\n  initialize({textLabel: \"Henlo\"}, `\naire-button(label.bind=\"textLabel\", icon.bind=\"icon\" default)\n  `);\n    await component.create(bootstrap);\n    let button = document.querySelector('.uk-button.uk-button-default');\n    expect(button).toBeTruthy();\n    done();\n});\n\ntest(\"a button can take a primary argument\", async(done) => {\n    initialize({textLabel: \"Henlo\"}, `\naire-button(label.bind=\"textLabel\", icon.bind=\"icon\" primary)\n  `);\n    await component.create(bootstrap);\n    let button = document.querySelector('.uk-button.uk-button-primary');\n    expect(button).toBeTruthy();\n    done();\n});\n\ntest(\"a button can take a secondary argument\", async(done) => {\n    initialize({textLabel: \"Henlo\"}, `\naire-button(label.bind=\"textLabel\", icon.bind=\"icon\" secondary)\n  `);\n    await component.create(bootstrap);\n    let button = document.querySelector('.uk-button.uk-button-secondary');\n    expect(button).toBeTruthy();\n    done();\n});\n\ntest(\"a button can take a danger argument\", async(done) => {\n    initialize({textLabel: \"Henlo\"}, `\naire-button(label.bind=\"textLabel\", icon.bind=\"icon\" danger)\n  `);\n    await component.create(bootstrap);\n    let button = document.querySelector('.uk-button.uk-button-danger');\n    expect(button).toBeTruthy();\n    done();\n});\n\ntest(\"a button can take a text argument\", async(done) => {\n    initialize({textLabel: \"Henlo\"}, `\naire-button(label.bind=\"textLabel\", icon.bind=\"icon\" text)\n  `);\n    await component.create(bootstrap);\n    let button = document.querySelector('.uk-button.uk-button-text');\n    expect(button).toBeTruthy();\n    done();\n});\n\ntest(\"a button can take a link argument\", async(done) => {\n    initialize({textLabel: \"Henlo\"}, `\naire-button(label.bind=\"textLabel\", icon.bind=\"icon\" link)\n  `);\n    await component.create(bootstrap);\n    let button = document.querySelector('.uk-button.uk-button-link');\n    expect(button).toBeTruthy();\n    done();\n});\n\ntest(\"a button can take a full argument\", async(done) => {\n    initialize({textLabel: \"Henlo\"}, `\naire-button(label.bind=\"textLabel\", icon.bind=\"icon\" full)\n  `);\n    await component.create(bootstrap);\n    let button = document.querySelector('.uk-button.uk-width-1-1');\n    expect(button).toBeTruthy();\n    done();\n});\n\ntest(\"a button can take a small argument\", async(done) => {\n    initialize({textLabel: \"Henlo\"}, `\naire-button(label.bind=\"textLabel\", icon.bind=\"icon\" small)\n  `);\n    await component.create(bootstrap);\n    let button = document.querySelector('.uk-button.uk-button-small');\n    expect(button).toBeTruthy();\n    done();\n});\n\ntest(\"a button can take a large argument\", async(done) => {\n    initialize({textLabel: \"Henlo\"}, `\naire-button(label.bind=\"textLabel\", icon.bind=\"icon\" large)\n  `);\n    await component.create(bootstrap);\n    let button = document.querySelector('.uk-button.uk-button-large');\n    expect(button).toBeTruthy();\n    done();\n});\n\ntest(\"a button can take a square argument\", async(done) => {\n    initialize({textLabel: \"Henlo\"}, `\naire-button(label.bind=\"textLabel\", icon.bind=\"icon\" square)\n  `);\n    await component.create(bootstrap);\n    let button = document.querySelector('.uk-button.aire-button-square');\n    expect(button).toBeTruthy();\n    done();\n});",
    "ctx": false
  }
]