import { describe, it, expect } from 'vitest'import { isCloudCapability, removeLineNumbers, validObjectOrArray } from '../src/utils.js'describe('utils', () => {describe('removeLineNumbers', () => {it('should properly remove line numbers in unix paths', () => {expect(removeLineNumbers('/test/f.feature:19:4')).toBe('/test/f.feature')expect(removeLineNumbers('/test/f.feature:9')).toBe('/test/f.feature')})it('should properly remove line numbers in windows paths', () => {expect(removeLineNumbers('c:\\test\\f.feature:9:14')).toBe('c:\\test\\f.feature')expect(removeLineNumbers('c:\\test\\f.feature:19')).toBe('c:\\test\\f.feature')})it('should do nothing if there is no line number in path (win)', () => {expect(removeLineNumbers('c:\\test\\f.feature')).toBe('c:\\test\\f.feature')})it('should do nothing if there is no line number in path (nix)', () => {expect(removeLineNumbers('/test/f.feature')).toBe('/test/f.feature')})})describe('validObjectOrArray', () => {describe('objects', () => {it('returns true if not empty', () => {expect(validObjectOrArray({ foo: 'bar' })).toBeTruthy()})it('returns false if empty', () => {expect(validObjectOrArray({})).toBeFalsy()})})describe('arrays', () => {it('returns true if not empty', () => {expect(validObjectOrArray(['foo', 'bar'])).toBeTruthy()})it('returns false if empty', () => {expect(validObjectOrArray([])).toBeFalsy()})})})describe('isCloudCapability', () => {it('should detect Browserstack capabilities', () => {expect(isCloudCapability({ 'bstack:options': {} })).toBe(true)})it('should detect Saucelabs capabilities', () => {expect(isCloudCapability({ 'sauce:options': {} })).toBe(true)})it('should detect Testingbot capabilities', () => {expect(isCloudCapability({ 'tb:options': {} })).toBe(true)})it('should detect non-cloud capabilities', () => {expect(isCloudCapability({ 'selenoid:options': {} })).toBe(false)})it('should handle null or empty capabilities', () => {expect(isCloudCapability({})).toBe(false)})})})