🏡 index : quine-global/webdriverio.git

import { describe, expect, it, beforeEach } from 'vitest'
import FeatureUsage from '../../src/testOps/featureUsage.js'

describe('FeatureUsage', () => {
    let featureUsage: FeatureUsage

    beforeEach(() => {
        featureUsage = new FeatureUsage()
    })

    it('setTriggered and getTriggered', () => {
        featureUsage.setTriggered(true)
        expect(featureUsage.getTriggered()).toBe(true)

        featureUsage.setTriggered(false)
        expect(featureUsage.getTriggered()).toBe(false)
    })

    it('setStatus and getStatus', () => {
        featureUsage.setStatus('status1')
        expect(featureUsage.getStatus()).toBe('status1')

        featureUsage.setStatus('status2')
        expect(featureUsage.getStatus()).toBe('status2')
    })

    it('setError and getError', () => {
        featureUsage.setError('error1')
        expect(featureUsage.getError()).toBe('error1')

        featureUsage.setError('error2')
        expect(featureUsage.getError()).toBe('error2')
    })

    it('triggered', () => {
        featureUsage.triggered()
        expect(featureUsage.getTriggered()).toBe(true)
    })

    it('failed', () => {
        featureUsage.failed('error message')
        expect(featureUsage.getStatus()).toBe('failed')
        expect(featureUsage.getError()).toBe('error message')
    })

    it('success', () => {
        featureUsage.success()
        expect(featureUsage.getStatus()).toBe('success')
    })

    it('toJSON', () => {
        featureUsage.setStatus('success')
        featureUsage.setTriggered(true)
        const json = featureUsage.toJSON()
        expect(json).toEqual({
            isTriggered: true,
            status: 'success',
            error: undefined
        })
    })
})