update: refactor filters test to vitest

This commit is contained in:
ThatGuySam 2024-12-27 15:04:46 -06:00
parent ae62aacbd6
commit bff6fd4494
2 changed files with 88 additions and 64 deletions

View file

@ -1,64 +0,0 @@
import test from 'ava'
// import MarkdownIt from 'markdown-it'
// import { isValidHttpUrl } from '~/helpers/check-types.js'
import { StorkFilters } from '~/helpers/stork/browser.js'
test('Can Toggle off existing filter' , async t => {
const filters = new StorkFilters({
initialFilters: {
'test': 'yes'
}
})
filters.toggleFilter('test')
t.deepEqual(filters.has('test'), false)
filters.toggleFilter('test', 'yes')
filters.toggleFilter('status', 'native')
t.deepEqual(filters.has('test'), true, 'Has test filter')
t.deepEqual(filters.asQuery, 'test_yes status_native', 'Has correct filters for query')
filters.toggleFilter('status_native')
t.deepEqual(filters.asQuery, 'test_yes', 'Has only test filter')
})
test('Can handle query values with multiple underscores', async t => {
const filters = new StorkFilters({
initialFilters: {
'test': 'value_with_multiple_underscores'
}
})
t.log( 'filters.asQuery', filters.asQuery )
t.assert( filters.has( 'test_value_with_multiple_underscores' ) , 'Has correct filters for query' )
})
test( 'Can update existing filter', async t => {
const filters = new StorkFilters({
initialFilters: {
'test': 'works_no'
}
})
filters.toggleFilter('test_works_yes')
t.deepEqual( filters.asQuery, 'test_works_yes', 'Has updated filter')
})
test( 'Can set filters from string', async t => {
const filters = new StorkFilters()
filters.setFromString( 'test_works_yes' )
t.deepEqual( filters.asQuery, 'test_works_yes', 'Has updated filter')
})

View file

@ -0,0 +1,88 @@
import { describe, it, expect, beforeEach } from 'vitest'
import { StorkFilters } from '~/helpers/stork/browser.js'
/**
* Tests for StorkFilters class which handles filter management and query string
* generation for Stork search
*/
describe('StorkFilters', () => {
// let filters
// beforeEach(() => {
// filters = new StorkFilters()
// })
// User Story: As a user, I want to toggle filters on/off so I can refine my search
describe('filter toggling', () => {
it('should toggle off an existing filter', () => {
const filters = new StorkFilters({
initialFilters: { test: 'yes' }
})
filters.toggleFilter('test')
expect(filters.has('test')).toBe(false)
})
it('should toggle on multiple filters', () => {
const filters = new StorkFilters({
initialFilters: { test: 'yes' }
})
// filters.toggleFilter('test', 'yes')
filters.toggleFilter('status', 'native')
expect(filters.has('test')).toBe( true )
expect(filters.asQuery).toBe('test_yes status_native')
})
it('should remove a specific filter', () => {
const filters = new StorkFilters({
initialFilters: {
test: 'yes',
status: 'native'
}
})
filters.toggleFilter('status_native')
expect(filters.asQuery).toBe('test_yes')
})
})
// User Story: As a user, I want to use complex filter values to enable detailed searching
describe('complex filter values', () => {
it('should handle values with multiple underscores', () => {
const filters = new StorkFilters({
initialFilters: {
test: 'value_with_multiple_underscores'
}
})
expect(filters.has('test_value_with_multiple_underscores')).toBe(true)
})
it('should update existing filter value', () => {
const filters = new StorkFilters({
initialFilters: {
test: 'works_no'
}
})
filters.toggleFilter('test_works_yes')
expect(filters.asQuery).toBe('test_works_yes')
})
})
// User Story: As a user, I want to set filters from a query string to restore search state
describe('filter initialization', () => {
it('should set filters from query string', () => {
const filters = new StorkFilters({
initialFilters: {
test: 'works_no'
}
})
filters.setFromString('test_works_yes')
expect(filters.asQuery).toBe('test_works_yes')
})
})
})