[
  {
    "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\";\nimport {AireAccordion} from \"aire/accordion/accordion\";\n\nlet component : any;\n\nfunction initialize(bindingContext : any, templateString ?: string) {\n    let template = templateString ? templateString : `aire-accordion`;\n    component = newComponent(template,\n        bindingContext,\n        'accordion/accordion', 'accordion/accordion-item'\n    );\n}\n\nafterEach(() => {\n    component.dispose();\n});\n\ntest(\"an accordion should initialize\", async(done) => {\n    initialize({});\n    await component.create(bootstrap);\n    expect(document.querySelector('ul.aire-accordion')).toBeTruthy();\n    done();\n});\n\ntest(\"an accordion has a slot for elements\", async(done) => {\n    initialize({}, `\naire-accordion\n    accordion-item\n    accordion-item\n`);\n    await component.create(bootstrap);\n    let items = document.querySelectorAll('ul.aire-accordion .uk-accordion-title');\n    expect(items).toBeTruthy();\n    expect(items.length).toBe(2);\n    done();\n});\n\ntest(\"an accordion should have a default animation\", async(done) => {\n    initialize({});\n    await component.create(bootstrap);\n    let accordion : AireAccordion = component.viewModel;\n    expect(accordion.accordion[\"$props\"].animation).toBeTruthy();\n    done();\n});\n\ntest(\"an accordion should have a bindable animation\", async(done) => {\n    initialize({animation: false}, `aire-accordion(animated.bind=\"animation\")`);\n    await component.create(bootstrap);\n    let accordion : AireAccordion = component.viewModel;\n    expect(accordion.accordion[\"$props\"].animation[0]).toBeFalsy(); //uikit is wrapping this oddly despite correct options\n    done();\n});\n\ntest(\"an accordion should have a default collapsible\", async(done) => {\n    initialize({});\n    await component.create(bootstrap);\n    let accordion : AireAccordion = component.viewModel;\n    expect(accordion.accordion[\"$props\"].collapsible).toBeTruthy();\n    done();\n});\n\ntest(\"an accordion should have a bindable collapsible\", async(done) => {\n    initialize({collapsible: false}, `aire-accordion(collapsible.bind=\"collapsible\")`);\n    await component.create(bootstrap);\n    let accordion : AireAccordion = component.viewModel;\n    expect(accordion.accordion[\"$props\"].collapsible).toBeFalsy();\n    done();\n});\n\ntest(\"an accordion should have a default duration\", async(done) => {\n    initialize({});\n    await component.create(bootstrap);\n    let accordion : AireAccordion = component.viewModel;\n    expect(accordion.accordion[\"$props\"].duration).toBe(200);\n    done();\n});\n\ntest(\"an accordion should have a bindable duration\", async(done) => {\n    initialize({duration: 450}, `aire-accordion(duration.bind=\"duration\")`);\n    await component.create(bootstrap);\n    let accordion : AireAccordion = component.viewModel;\n    expect(accordion.accordion[\"$props\"].duration).toBe(450);\n    done();\n});\n\ntest(\"an accordion should have a default multiple\", async(done) => {\n    initialize({});\n    await component.create(bootstrap);\n    let accordion : AireAccordion = component.viewModel;\n    expect(accordion.accordion[\"$props\"].multiple).toBeFalsy();\n    done();\n});\n\ntest(\"an accordion should have a bindable multiple\", async(done) => {\n    initialize({multiple: true}, `aire-accordion(multiple.bind=\"multiple\")`);\n    await component.create(bootstrap);\n    let accordion : AireAccordion = component.viewModel;\n    expect(accordion.accordion[\"$props\"].multiple).toBeTruthy();\n    done();\n});\n\ntest(\"an accordion should have a default transition\", async(done) => {\n    initialize({});\n    await component.create(bootstrap);\n    let accordion : AireAccordion = component.viewModel;\n    expect(accordion.accordion[\"$props\"].transition).toBe(\"ease\");\n    done();\n});\n\ntest(\"an accordion should have a bindable transition\", async(done) => {\n    initialize({transition: 'step-start'}, `aire-accordion(transition.bind=\"transition\")`);\n    await component.create(bootstrap);\n    let accordion : AireAccordion = component.viewModel;\n    expect(accordion.accordion[\"$props\"].transition).toBe(\"step-start\");\n    done();\n});",
    "ctx": false
  }
]