function getData(key = '') {
    return new Promise(async (resolve, reject) => {
        const data = await page.data()
        resolve(key ? data[key] : data)
    })
}

let page
beforeAll(async () => {
    page = await program.reLaunch('/pages/component/progress/progress')
    await page.waitFor(1000)
})

describe('Progress.uvue', () => {
    it('percent', async () => {
        const p = await page.$('.p')
        const p1 = await page.$('.p1')
        const p2 = await page.$('.p2')
        const p3 = await page.$('.p3')
        page.callMethod('setProgress')
        await page.waitFor(1000)
        expect(await p.property('percent')).toEqual(20)
        expect(await p1.property('percent')).toEqual(40)
        expect(await p2.property('percent')).toEqual(60)
        expect(await p3.property('percent')).toEqual(80)
        expect(await getData('curPercent')).toEqual(20)
        page.callMethod('clearProgress')
        await page.waitFor(1000)
        expect(await p.property('percent')).toEqual(0)
        expect(await p1.property('percent')).toEqual(0)
        expect(await p2.property('percent')).toEqual(0)
        expect(await p3.property('percent')).toEqual(0)
        expect(await getData('curPercent')).toEqual(0)
    })
    it('length', async () => {
        const elements = await page.$$('.progress')
        expect(elements.length).toBe(4)
    })
    it('show-info', async () => {
        const el = await page.$('.p')
        expect(await el.property('show-info')).toEqual(true)
        await page.setData({
            showInfo: false
        })
        await page.waitFor(500)
        expect(await el.property('show-info')).toEqual(false)
    })
    it('border-radius', async () => {
        const el = await page.$('.p')
        expect(await el.property('border-radius')).toEqual(0)
        await page.setData({
            borderRadius: 5
        })
        await page.waitFor(500)
        expect(await el.property('border-radius')).toEqual(5)
    })
    it('font-size', async () => {
        const el = await page.$('.p')
        expect(await el.property('font-size')).toEqual(16)
        await page.setData({
            fontSize: 18
        })
        await page.waitFor(500)
        expect(await el.property('font-size')).toEqual(18)
    })
    it('stroke-width', async () => {
        const el = await page.$('.p')
        expect(await el.property('stroke-width')).toEqual(3)
        await page.setData({
            strokeWidth: 6
        })
        await page.waitFor(500)
        expect(await el.property('stroke-width')).toEqual(6)
    })
    it('backgroundColor', async () => {
        const el = await page.$('.p')
        expect(await el.property('background-color')).toEqual('#EBEBEB')
        await page.setData({
            backgroundColor: "#007aff"
        })
        await page.waitFor(500)
        expect(await el.property('background-color')).toEqual('#007aff')
    })
})