{"version":3,"sources":["lib/arrivalPie/spec/arrivalPieSpec.ts"],"names":[],"mappings":"","file":"../../../../lib/arrivalPie/spec/arrivalPieSpec.d.ts","sourcesContent":["import { sleep } from '../../../common/mutexHelper.js';\nimport { getStage } from '../../test/util.js';\nimport ArrivalPie, { arrivalListToString, buildPath, stringToArrivalList } from '../arrivalPie.js';\n\ndescribe('the littleware.arrivalPie custom element', () => {\n  it('Can convert between an arrival-list and an attribute string', () => {\n    const arrList = [\n      { startAngle: 10, durationDegrees: 20 },\n      { startAngle: 40, durationDegrees: 50 },\n    ];\n    const arrStr = arrivalListToString(arrList);\n    expect(arrStr).toBe(arrivalListToString(stringToArrivalList(arrStr)));\n  });\n\n  it('Has a static observedAttributes property', () => {\n    const propList = ArrivalPie.observedAttributes;\n    expect(propList.length).toBe(1);\n    expect(propList[0]).toBe('arrival-list');\n  });\n\n  it('Can allocate an ArrivalPie object', () => {\n    const pie = new ArrivalPie();\n    expect(pie).toBeDefined();\n  });\n\n  it(\"Listens for attribute change events on 'arrival-list' attribute\", (done) => {\n    const pie = new ArrivalPie();\n    const stage = getStage('changeCallback', 'Testing attributeChangedCallback');\n    stage.appendChild(pie);\n    spyOn(pie, '_render').and.callThrough();\n    pie.setAttribute('arrival-list', '30,30;');\n    sleep(20).then( // give browser chance to render\n      () => {\n        expect((pie._render as any)).toHaveBeenCalled();\n        done();\n      },\n    );\n  });\n\n  it('Can build a path from an arrival', () => {\n    const arr = { startAngle: 10, durationDegrees: 30 };\n    const path = buildPath(arr);\n\n    expect(path.getAttribute('d').indexOf('M50,50 L50,5 A45,45 0 0,1')).toBe(0);\n  });\n\n  it('Can render an ArrivalPie with a couple arrivals', (done) => {\n    const stage = getStage('pie1', 'ArrivalPie - 2 arrivals');\n    const pie = document.createElement('lw-arrival-pie');\n    // 6 degrees === 1 minute\n    stage.appendChild(pie);\n    pie.setAttribute('arrival-list', '20,6;50,6');\n    // Give browser chance to render\n    sleep(20).then(\n      () => {\n        expect(pie.querySelectorAll('path').length).toBe(2);\n        done();\n      },\n    );\n  });\n});\n"]}