Skip to content

Commit

Permalink
feat: add initial list of test specs
Browse files Browse the repository at this point in the history
  • Loading branch information
flaminic committed Dec 9, 2024
1 parent 1f1dcb1 commit c53f1cf
Show file tree
Hide file tree
Showing 36 changed files with 410 additions and 2 deletions.
10 changes: 10 additions & 0 deletions src/pages/categories/Edit.spec.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import { generateDefaultEditFormTests } from '../defaultFormTests'

generateDefaultEditFormTests('Category')

Check failure on line 3 in src/pages/categories/Edit.spec.tsx

View workflow job for this annotation

GitHub Actions / build

Argument of type 'string' is not assignable to parameter of type '{ componentName: any; }'.

describe('Category edit form additional tests', () => {
it('contain all needed field prefilled', () => {})
it('should not submit when a required values is removed ', () => {})
it('should submit the data and return to the list view on success when a field is changed', () => {})
it('should do nothing and return to the list view on success when no field is changed', () => {})
})
8 changes: 8 additions & 0 deletions src/pages/categories/List.spec.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
import { generateDefaultListTests } from '../defaultListTests'

generateDefaultListTests('Category')

Check failure on line 3 in src/pages/categories/List.spec.tsx

View workflow job for this annotation

GitHub Actions / build

Argument of type 'string' is not assignable to parameter of type '{ componentName: any; }'.

describe('Category additional tests', () => {
it('should filter by data dimension type', () => {})
it('should filter by data category combo', () => {})
})
17 changes: 17 additions & 0 deletions src/pages/categories/New.spec.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
import { generateDefaultAddFormTests } from '../defaultFormTests'

generateDefaultAddFormTests('Category')

Check failure on line 3 in src/pages/categories/New.spec.tsx

View workflow job for this annotation

GitHub Actions / build

Argument of type 'string' is not assignable to parameter of type '{ componentName: any; }'.

describe('Category add form additional tests', () => {
it('contain all needed field', () => {})
it('should not submit when required values are missing', () => {})
it('should submit the data and return to the list view on success', () => {})
it('should show an error if name field is too long', () => {})
it('should show an error if short name field is too long', () => {})
it('should show an error if code field is too long', () => {})
it('should show an error if description field is too long', () => {})
it('should show an error if name field is a duplicate', () => {})
it('should show an error if short name field is a duplicate', () => {})
it('should show an error if code field is a duplicate', () => {})
it('not show an add all button for category options', () => {})
})
10 changes: 10 additions & 0 deletions src/pages/categoryCombos/Edit.spec.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import { generateDefaultEditFormTests } from '../defaultFormTests'

generateDefaultEditFormTests('Category combo')

Check failure on line 3 in src/pages/categoryCombos/Edit.spec.tsx

View workflow job for this annotation

GitHub Actions / build

Argument of type 'string' is not assignable to parameter of type '{ componentName: any; }'.

describe('Category combo edit form additional tests', () => {
it('contain all needed field prefilled', () => {})
it('should not submit when a required values is removed ', () => {})
it('should submit the data and return to the list view on success when a field is changed', () => {})
it('should do nothing and return to the list view on success when no field is changed', () => {})
})
8 changes: 8 additions & 0 deletions src/pages/categoryCombos/List.spec.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
import { generateDefaultListTests } from '../defaultListTests'

generateDefaultListTests('Category combo')

Check failure on line 3 in src/pages/categoryCombos/List.spec.tsx

View workflow job for this annotation

GitHub Actions / build

Argument of type 'string' is not assignable to parameter of type '{ componentName: any; }'.

describe('Category combos additional tests', () => {
it('should filter by data dimension type', () => {})
it('should filter by data category combo', () => {})
})
14 changes: 14 additions & 0 deletions src/pages/categoryCombos/New.spec.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import { generateDefaultAddFormTests } from '../defaultFormTests'

generateDefaultAddFormTests('Category combo')

Check failure on line 3 in src/pages/categoryCombos/New.spec.tsx

View workflow job for this annotation

GitHub Actions / build

Argument of type 'string' is not assignable to parameter of type '{ componentName: any; }'.

describe('Category combo add form additional tests', () => {
it('contain all needed field', () => {})
it('should not submit when required values are missing', () => {})
it('should submit the data and return to the list view on success', () => {})
it('should show an error if name field is too long', () => {})
it('should show an error if code field is too long', () => {})
it('should show an error if name field is a duplicate', () => {})
it('should show an error if code field is a duplicate', () => {})
it('not show an add all button for categories', () => {})
})
10 changes: 10 additions & 0 deletions src/pages/categoryOptionCombos/Edit.spec.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import { generateDefaultEditFormTests } from '../defaultFormTests'

generateDefaultEditFormTests('Category option combo')

Check failure on line 3 in src/pages/categoryOptionCombos/Edit.spec.tsx

View workflow job for this annotation

GitHub Actions / build

Argument of type 'string' is not assignable to parameter of type '{ componentName: any; }'.

describe('Category option combo edit form additional tests', () => {
it('contain all needed field prefilled', () => {})
it('should not be able to edit name', () => {})
it('should submit the data and return to the list view on success when a field is changed', () => {})
it('should do nothing and return to the list view on success when no field is changed', () => {})
})
8 changes: 8 additions & 0 deletions src/pages/categoryOptionCombos/List.spec.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
import { generateDefaultListTests } from '../defaultListTests'

generateDefaultListTests('Category option combo')

Check failure on line 3 in src/pages/categoryOptionCombos/List.spec.tsx

View workflow job for this annotation

GitHub Actions / build

Argument of type 'string' is not assignable to parameter of type '{ componentName: any; }'.

describe('Category option combo additional tests', () => {
it('should filter by category option', () => {})
it('should filter by category combo', () => {})
})
10 changes: 10 additions & 0 deletions src/pages/categoryOptionGroupSets/Edit.spec.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import { generateDefaultEditFormTests } from '../defaultFormTests'

generateDefaultEditFormTests('Category option group set')

Check failure on line 3 in src/pages/categoryOptionGroupSets/Edit.spec.tsx

View workflow job for this annotation

GitHub Actions / build

Argument of type 'string' is not assignable to parameter of type '{ componentName: any; }'.

describe('Category option group set edit form additional tests', () => {
it('contain all needed field prefilled', () => {})
it('should not submit when a required values is removed ', () => {})
it('should submit the data and return to the list view on success when a field is changed', () => {})
it('should do nothing and return to the list view on success when no field is changed', () => {})
})
7 changes: 7 additions & 0 deletions src/pages/categoryOptionGroupSets/List.spec.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
import { generateDefaultListTests } from '../defaultListTests'

generateDefaultListTests('Category option group set')

Check failure on line 3 in src/pages/categoryOptionGroupSets/List.spec.tsx

View workflow job for this annotation

GitHub Actions / build

Argument of type 'string' is not assignable to parameter of type '{ componentName: any; }'.

describe('Category option group set additional tests', () => {
it('should filter by data dimension type', () => {})
})
17 changes: 17 additions & 0 deletions src/pages/categoryOptionGroupSets/New.spec.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
import { generateDefaultAddFormTests } from '../defaultFormTests'

generateDefaultAddFormTests('Category option group set')

describe('Category option group set add form additional tests', () => {
it('contain all needed field', () => {})
it('should not submit when required values are missing', () => {})
it('should submit the data and return to the list view on success', () => {})
it('should show an error if name field is too long', () => {})
it('should show an error if short name field is too long', () => {})
it('should show an error if code field is too long', () => {})
it('should show an error if description field is too long', () => {})
it('should show an error if name field is a duplicate', () => {})
it('should show an error if short name field is a duplicate', () => {})
it('should show an error if code field is a duplicate', () => {})
it('not show an add all button for category option groups', () => {})
})
10 changes: 10 additions & 0 deletions src/pages/categoryOptionGroups/Edit.spec.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import { generateDefaultEditFormTests } from '../defaultFormTests'

generateDefaultEditFormTests('Category option group')

describe('Category option group edit form additional tests', () => {
it('contain all needed field prefilled', () => {})
it('should not submit when a required values is removed ', () => {})
it('should submit the data and return to the list view on success when a field is changed', () => {})
it('should do nothing and return to the list view on success when no field is changed', () => {})
})
7 changes: 7 additions & 0 deletions src/pages/categoryOptionGroups/List.spec.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
import { generateDefaultListTests } from '../defaultListTests'

generateDefaultListTests('Category option group')

describe('Category option group additional tests', () => {
it('should filter by data dimension type', () => {})
})
17 changes: 17 additions & 0 deletions src/pages/categoryOptionGroups/New.spec.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
import { generateDefaultAddFormTests } from '../defaultFormTests'

generateDefaultAddFormTests('Category option group')

describe('Category option group add form additional tests', () => {
it('contain all needed field', () => {})
it('should not submit when required values are missing', () => {})
it('should submit the data and return to the list view on success', () => {})
it('should show an error if name field is too long', () => {})
it('should show an error if short name field is too long', () => {})
it('should show an error if code field is too long', () => {})
it('should show an error if description field is too long', () => {})
it('should show an error if name field is a duplicate', () => {})
it('should show an error if short name field is a duplicate', () => {})
it('should show an error if code field is a duplicate', () => {})
it('not show an add all button for category options', () => {})
})
11 changes: 11 additions & 0 deletions src/pages/categoryOptions/Edit.spec.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
import { generateDefaultEditFormTests } from '../defaultFormTests'

generateDefaultEditFormTests('Category option')

describe('Category option edit form additional tests', () => {
it('contain all needed field prefilled', () => {})
it('display dates in the required format', () => {})
it('should not submit when a required values is removed ', () => {})
it('should submit the data and return to the list view on success when a field is changed', () => {})
it('should do nothing and return to the list view on success when no field is changed', () => {})
})
8 changes: 8 additions & 0 deletions src/pages/categoryOptions/List.spec.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
import { generateDefaultListTests } from '../defaultListTests'

generateDefaultListTests('Category option')

describe('Category option additional tests', () => {
it('should filter by category', () => {})
it('should filter by category option group', () => {})
})
16 changes: 16 additions & 0 deletions src/pages/categoryOptions/New.spec.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
import { generateDefaultAddFormTests } from '../defaultFormTests'

generateDefaultAddFormTests('Category option')

describe('Category option add form additional tests', () => {
it('contain all needed field', () => {})
it('should not submit when required values are missing', () => {})
it('should submit the data and return to the list view on success', () => {})
it('should show an error if name field is too long', () => {})
it('should show an error if short name field is too long', () => {})
it('should show an error if code field is too long', () => {})
it('should show an error if name field is a duplicate', () => {})
it('should show an error if short name field is a duplicate', () => {})
it('should show an error if code field is a duplicate', () => {})
it('not show an add all button for category option groups', () => {})
})
10 changes: 10 additions & 0 deletions src/pages/dataElementGroupSets/Edit.spec.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import { generateDefaultEditFormTests } from '../defaultFormTests'

generateDefaultEditFormTests('Data element group set')

describe('Data element group set edit form additional tests', () => {
it('contain all needed field prefilled', () => {})
it('should not submit when a required values is removed ', () => {})
it('should submit the data and return to the list view on success when a field is changed', () => {})
it('should do nothing and return to the list view on success when no field is changed', () => {})
})
3 changes: 3 additions & 0 deletions src/pages/dataElementGroupSets/List.spec.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
import { generateDefaultListTests } from '../defaultListTests'

generateDefaultListTests('Data element group set')
16 changes: 16 additions & 0 deletions src/pages/dataElementGroupSets/New.spec.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
import { generateDefaultAddFormTests } from '../defaultFormTests'

generateDefaultAddFormTests('Data element group set')

describe('Data element group set add form additional tests', () => {
it('contain all needed field', () => {})
it('should not submit when required values are missing', () => {})
it('should submit the data and return to the list view on success', () => {})
it('should show an error if name field is too long', () => {})
it('should show an error if short name field is too long', () => {})
it('should show an error if code field is too long', () => {})
it('should show an error if description field is too long', () => {})
it('should show an error if name field is a duplicate', () => {})
it('should show an error if short name field is a duplicate', () => {})
it('should show an error if code field is a duplicate', () => {})
})
10 changes: 10 additions & 0 deletions src/pages/dataElementGroups/Edit.spec.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import { generateDefaultEditFormTests } from '../defaultFormTests'

generateDefaultEditFormTests('Data element group')

describe('Data element group edit form additional tests', () => {
it('contain all needed field prefilled', () => {})
it('should not submit when a required values is removed ', () => {})
it('should submit the data and return to the list view on success when a field is changed', () => {})
it('should do nothing and return to the list view on success when no field is changed', () => {})
})
3 changes: 3 additions & 0 deletions src/pages/dataElementGroups/List.spec.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
import { generateDefaultListTests } from '../defaultListTests'

generateDefaultListTests('Data element group')
16 changes: 16 additions & 0 deletions src/pages/dataElementGroups/New.spec.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
import { generateDefaultAddFormTests } from '../defaultFormTests'

generateDefaultAddFormTests('Data element group')

describe('Data element group add form additional tests', () => {
it('contain all needed field', () => {})
it('should not submit when required values are missing', () => {})
it('should submit the data and return to the list view on success', () => {})
it('should show an error if name field is too long', () => {})
it('should show an error if short name field is too long', () => {})
it('should show an error if code field is too long', () => {})
it('should show an error if description field is too long', () => {})
it('should show an error if name field is a duplicate', () => {})
it('should show an error if short name field is a duplicate', () => {})
it('should show an error if code field is a duplicate', () => {})
})
10 changes: 10 additions & 0 deletions src/pages/dataElements/Edit.spec.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import { generateDefaultEditFormTests } from '../defaultFormTests'

generateDefaultEditFormTests('Data element')

describe('Data element edit form additional tests', () => {
it('contain all needed field prefilled', () => {})
it('should not submit when a required values is removed ', () => {})
it('should submit the data and return to the list view on success when a field is changed', () => {})
it('should do nothing and return to the list view on success when no field is changed', () => {})
})
5 changes: 4 additions & 1 deletion src/pages/dataElements/List.spec.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ import TestComponentWithRouter, {
import dataElementsMock from './__mocks__/list/dataElementsMock.json'
import filteredDataElementsMock from './__mocks__/list/filteredDataElementsMock.json'
import { Component as DataElementList } from './List'
import { generateDefaultListTests } from '../defaultListTests'

Check failure on line 22 in src/pages/dataElements/List.spec.tsx

View workflow job for this annotation

GitHub Actions / lint

`../defaultListTests` import should occur before import of `./__mocks__/list/dataElementsMock.json`

const FIRST_DATA_ELEMENT = dataElementsMock.dataElements[0]
const FIRST_FILTERED_DATA_ELEMENT = filteredDataElementsMock.dataElements[0]
Expand Down Expand Up @@ -52,7 +53,9 @@ const error404 = new FetchError({
})
const defaultUserDataStoreData = () => Promise.reject(new FetchError(error404))

describe('Data Elements List', () => {
generateDefaultListTests('Data element')

describe('Data Element List additional tests', () => {
const originalWarn = console.warn
jest.spyOn(console, 'warn').mockImplementation((value) => {
if (!value.match(/No server timezone/)) {
Expand Down
12 changes: 12 additions & 0 deletions src/pages/dataElements/New.spec.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import { ComponentWithProvider } from '../../testUtils/TestComponentWithRouter'
import attributes from './__mocks__/attributes.json'
import categoryCombosPage1 from './__mocks__/categoryCombosPage1.json'
import { Component as New } from './New'
import { generateDefaultAddFormTests } from '../defaultFormTests'

Check failure on line 11 in src/pages/dataElements/New.spec.tsx

View workflow job for this annotation

GitHub Actions / lint

`../defaultFormTests` import should occur before import of `./__mocks__/attributes.json`

jest.mock('../../lib/routeUtils/useSectionHandle', () => ({
useSchemaSectionHandleOrThrow: jest.fn(() => ({
Expand Down Expand Up @@ -56,6 +57,8 @@ async function changeSingleSelect(
fireEvent.click(optionElement)
}

generateDefaultAddFormTests('Data element group set')

describe('Data Elements / New', () => {
const consoleWarn = console.warn
jest.spyOn(console, 'warn').mockImplementation((value) => {
Expand Down Expand Up @@ -192,4 +195,13 @@ describe('Data Elements / New', () => {
const listView = await result.findByText('List view')
expect(listView).toBeTruthy()
})

it('contain all needed field', () => {})
it('should show an error if name field is too long', () => {})
it('should show an error if short name field is too long', () => {})
it('should show an error if code field is too long', () => {})
it('should show an error if description field is too long', () => {})
it('should show an error if name field is a duplicate', () => {})
it('should show an error if short name field is a duplicate', () => {})
it('should show an error if code field is a duplicate', () => {})
})
7 changes: 7 additions & 0 deletions src/pages/dataSets/List.spec.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
import { generateDefaultListTests } from '../defaultListTests'

generateDefaultListTests('Data sets')

describe('Data sets additional tests', () => {
it('should filter by form type', () => {})
})
13 changes: 13 additions & 0 deletions src/pages/defaultFormTests.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
export const generateDefaultAddFormTests = ({ componentName }) => {
describe(`${componentName} default add form tests`, () => {
it('should should return to the list view when cancelling', () => {})
it('should show a loader while the form is being submitted ', () => {})
})
}

export const generateDefaultEditFormTests = ({ componentName }) => {
describe(`${componentName} default add form tests`, () => {
it('should should return to the list view when cancelling', () => {})
it('should show a loader while the form is being submitted ', () => {})
})
}
43 changes: 43 additions & 0 deletions src/pages/defaultListTests.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
export const generateDefaultListTests = ({ componentName }) => {
describe(`${componentName} default list tests`, () => {
it('should display all the items in the first page', () => {})
it('should display the default columns', () => {})
it('can change the visible columns through manage view', () => {})
it('should change the number of items that are displayed in a page when the number of items per page is changed', () => {})
it('can navigate through pages and show the corresponding items', () => {})
it('can sort teh results by columns', () => {})
it('should display error when an API call fails', () => {})
})

describe(`${componentName} default filter tests`, () => {
it('scan filter the results by code using the input field', () => {})
it('scan filter the results by name using the input field', () => {})
it('scan filter the results by id using the input field', () => {})
it('should display the default filters', () => {})
it('can change the visible filters through manage view', () => {})
it('can remove all filters through manage view', () => {})
})

describe(`${componentName} default row actions tests`, () => {
it('should display teh default actions in the actions menu', () => {})
it('redirect to the edit page when clicking on the edit action', () => {})
it('redirect to the edit page when clicking on the pencil icon', () => {})
it('delete an item when pressing teh delete action and confirming', () => {})
it('update the list when an item is deleted', () => {})
it('show the detail panel when the show details action is clicked', () => {})
it('show an edit button in the details panel', () => {})
it('be able to copy the api url in the details panel', () => {})
it('should open the sharing settings dialog when the sharing settings action is clicked', () => {})
it('should update the list view when the sharing settings dialog is closed', () => {})
it('should open a translation dialog when teh translate action is clicked', () => {})
it('should successfully save a new translation', () => {})
})

describe(`${componentName} default multiple actions tests`, () => {
it('should display the multiple actions banner when 1 or more items are selected', () => {})
it('should indicate how many items were selected', () => {})
it('should update sharing settings for multiple items', () => {})
it('should download multiple items', () => {})
it('deselect all selected items', () => {})
})
}
Loading

0 comments on commit c53f1cf

Please sign in to comment.