From bff6fd4494cf39cefdd5fd202b78444add0f8244 Mon Sep 17 00:00:00 2001 From: ThatGuySam Date: Fri, 27 Dec 2024 15:04:46 -0600 Subject: [PATCH] update: refactor filters test to vitest --- test/_disabled/prebuild/filters.js | 64 ---------------------- test/prebuild/filters.test.js | 88 ++++++++++++++++++++++++++++++ 2 files changed, 88 insertions(+), 64 deletions(-) delete mode 100644 test/_disabled/prebuild/filters.js create mode 100644 test/prebuild/filters.test.js diff --git a/test/_disabled/prebuild/filters.js b/test/_disabled/prebuild/filters.js deleted file mode 100644 index f0168e2..0000000 --- a/test/_disabled/prebuild/filters.js +++ /dev/null @@ -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') -}) diff --git a/test/prebuild/filters.test.js b/test/prebuild/filters.test.js new file mode 100644 index 0000000..302962b --- /dev/null +++ b/test/prebuild/filters.test.js @@ -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') + }) + }) +})