mirror of
https://gitlab.com/walljm/dynamicbible.git
synced 2025-07-23 23:39:50 -04:00
little reorg, added more unit tests to reducer, caught and fixed 1 bug
This commit is contained in:
parent
fcc3023138
commit
6a4c772ad1
@ -12,10 +12,42 @@ describe('AppService Reducer', () => {
|
|||||||
user: null,
|
user: null,
|
||||||
cards: [],
|
cards: [],
|
||||||
autocomplete: [],
|
autocomplete: [],
|
||||||
currentSavedPage: null,
|
currentSavedPage: {
|
||||||
|
queries: [],
|
||||||
|
title: 'page1',
|
||||||
|
id: 'myid1',
|
||||||
|
},
|
||||||
savedPages: {
|
savedPages: {
|
||||||
createdOn: new Date(0).toISOString(),
|
createdOn: new Date(0).toISOString(),
|
||||||
value: [],
|
value: [
|
||||||
|
{
|
||||||
|
queries: [
|
||||||
|
{
|
||||||
|
qry: 'H1',
|
||||||
|
data: null,
|
||||||
|
type: CardType.Strongs,
|
||||||
|
} as CardItem,
|
||||||
|
],
|
||||||
|
title: 'page1',
|
||||||
|
id: 'myid1',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
queries: [
|
||||||
|
{
|
||||||
|
qry: 'H2',
|
||||||
|
data: null,
|
||||||
|
type: CardType.Strongs,
|
||||||
|
} as CardItem,
|
||||||
|
{
|
||||||
|
qry: 'G1',
|
||||||
|
data: null,
|
||||||
|
type: CardType.Strongs,
|
||||||
|
} as CardItem,
|
||||||
|
],
|
||||||
|
title: 'page2',
|
||||||
|
id: 'myid2',
|
||||||
|
},
|
||||||
|
],
|
||||||
},
|
},
|
||||||
notes: {
|
notes: {
|
||||||
createdOn: new Date(0).toISOString(),
|
createdOn: new Date(0).toISOString(),
|
||||||
@ -67,20 +99,7 @@ describe('AppService Reducer', () => {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
it('UPDATE_CARD_FONT_SIZE', () => {
|
// UPDATE_PAGE_SETTINGS
|
||||||
const action = AppActionFactory.newUpdateCardFontSize(32);
|
|
||||||
const testState = reducer(preState, action);
|
|
||||||
expect(testState.displaySettings.value.cardFontSize).toBe(32, 'Failed to change card font size to 32');
|
|
||||||
});
|
|
||||||
|
|
||||||
it('UPDATE_CARD_FONT_FAMILY', () => {
|
|
||||||
const action = AppActionFactory.newUpdateCardFontFamily('Jason');
|
|
||||||
const testState = reducer(preState, action);
|
|
||||||
expect(testState.displaySettings.value.cardFontFamily).toBe(
|
|
||||||
'Jason',
|
|
||||||
'Failed to change card font family to "Jason"'
|
|
||||||
);
|
|
||||||
});
|
|
||||||
|
|
||||||
it('UPDATE_DISPLAY_SETTINGS', () => {
|
it('UPDATE_DISPLAY_SETTINGS', () => {
|
||||||
const settings = {
|
const settings = {
|
||||||
@ -105,6 +124,107 @@ describe('AppService Reducer', () => {
|
|||||||
expect(testState.displaySettings).toBe(settings, 'Failed to update the display settings');
|
expect(testState.displaySettings).toBe(settings, 'Failed to update the display settings');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('UPDATE_CARD_FONT_SIZE', () => {
|
||||||
|
const action = AppActionFactory.newUpdateCardFontSize(32);
|
||||||
|
const testState = reducer(preState, action);
|
||||||
|
expect(testState.displaySettings.value.cardFontSize).toBe(32, 'Failed to change card font size to 32');
|
||||||
|
});
|
||||||
|
|
||||||
|
it('UPDATE_CARD_FONT_FAMILY', () => {
|
||||||
|
const action = AppActionFactory.newUpdateCardFontFamily('Jason');
|
||||||
|
const testState = reducer(preState, action);
|
||||||
|
expect(testState.displaySettings.value.cardFontFamily).toBe(
|
||||||
|
'Jason',
|
||||||
|
'Failed to change card font family to "Jason"'
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('UPDATE_AUTOCOMPLETE', () => {
|
||||||
|
const words = ['word1', 'word2', 'word3'];
|
||||||
|
|
||||||
|
const action = AppActionFactory.newUpdateAutocomplete(words);
|
||||||
|
const testState = reducer(preState, action);
|
||||||
|
expect(testState.autocomplete).toEqual(words, 'Failed to update the autocomplete array');
|
||||||
|
});
|
||||||
|
|
||||||
|
it('UPDATE_SAVED_PAGES', () => {
|
||||||
|
const savedPages = new Storable<readonly SavedPage[]>([
|
||||||
|
{
|
||||||
|
queries: [
|
||||||
|
{
|
||||||
|
qry: 'H12',
|
||||||
|
data: null,
|
||||||
|
type: CardType.Strongs,
|
||||||
|
} as CardItem,
|
||||||
|
],
|
||||||
|
title: 'testpage',
|
||||||
|
id: 'myid',
|
||||||
|
},
|
||||||
|
]);
|
||||||
|
|
||||||
|
const action = AppActionFactory.newUpdateSavedPages(savedPages);
|
||||||
|
const testState = reducer(preState, action);
|
||||||
|
expect(testState.savedPages).toBe(savedPages, 'Failed to update the savedPages array');
|
||||||
|
expect(testState.savedPages.value.length).toBe(1, 'Updated savedPages is the wrong length');
|
||||||
|
expect(testState.savedPages.value[0].queries.length).toBe(
|
||||||
|
1,
|
||||||
|
'Updated savedPages first object has the wrong number of queries'
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('UPDATE_SAVED_PAGE', () => {
|
||||||
|
const sp: SavedPage = {
|
||||||
|
queries: [],
|
||||||
|
title: 'test page',
|
||||||
|
id: 'myid2',
|
||||||
|
};
|
||||||
|
|
||||||
|
const action = AppActionFactory.newUpdateSavedPage(sp);
|
||||||
|
const testState = reducer(preState, action);
|
||||||
|
|
||||||
|
expect(testState.savedPages.value[0].queries.length).toBe(
|
||||||
|
1,
|
||||||
|
'Updated savedPages first object has the wrong number of queries'
|
||||||
|
);
|
||||||
|
expect(testState.savedPages.value[0].title).toBe('page1');
|
||||||
|
expect(testState.savedPages.value[1].queries.length).toBe(
|
||||||
|
0,
|
||||||
|
'Updated savedPages first object has the wrong number of queries'
|
||||||
|
);
|
||||||
|
expect(testState.savedPages.value[1].title).toBe('test page');
|
||||||
|
});
|
||||||
|
|
||||||
|
it('REMOVE_SAVED_PAGE', () => {
|
||||||
|
const sp = preState.savedPages.value[0];
|
||||||
|
const action = AppActionFactory.newRemoveSavedPage(sp);
|
||||||
|
const testState = reducer(preState, action);
|
||||||
|
|
||||||
|
expect(testState.savedPages.value.length).toBe(1, 'Updated savedPages should be 1');
|
||||||
|
expect(testState.savedPages.value[0].title).toBe('page2');
|
||||||
|
});
|
||||||
|
|
||||||
|
it('UPDATE_CURRENT_PAGE', () => {
|
||||||
|
const card1: CardItem = {
|
||||||
|
qry: 'H123',
|
||||||
|
data: null,
|
||||||
|
type: CardType.Strongs,
|
||||||
|
};
|
||||||
|
|
||||||
|
const action1 = AppActionFactory.newAddCard(card1, null);
|
||||||
|
const testState = reducer(preState, action1);
|
||||||
|
expect(testState.cards[0]).toBe(card1, 'Failed to add first card to empty list');
|
||||||
|
|
||||||
|
const action = AppActionFactory.newUpdateCurrentPage();
|
||||||
|
const testState2 = reducer(testState, action);
|
||||||
|
|
||||||
|
expect(testState2.currentSavedPage.queries.length).toBe(1);
|
||||||
|
expect(preState.currentSavedPage.queries.length).toBe(0);
|
||||||
|
});
|
||||||
|
|
||||||
|
// 'SAVE_PAGE';
|
||||||
|
// 'GET_SAVED_PAGE';
|
||||||
|
// 'ADD_CARD_TO_SAVED_PAGE';
|
||||||
|
|
||||||
it('ADD_CARD', () => {
|
it('ADD_CARD', () => {
|
||||||
const card1: CardItem = {
|
const card1: CardItem = {
|
||||||
qry: 'H123',
|
qry: 'H123',
|
||||||
@ -242,42 +362,13 @@ describe('AppService Reducer', () => {
|
|||||||
expect(testState6.cards[0]).toBe(card3, 'Failed to insert card at start of the list');
|
expect(testState6.cards[0]).toBe(card3, 'Failed to insert card at start of the list');
|
||||||
});
|
});
|
||||||
|
|
||||||
it('UPDATE_AUTOCOMPLETE', () => {
|
// 'UPDATE_CARD';
|
||||||
const words = ['word1', 'word2', 'word3'];
|
// 'REMOVE_CARD';
|
||||||
|
// 'MOVE_CARD';
|
||||||
const action = AppActionFactory.newUpdateAutocomplete(words);
|
// 'SET_USER';
|
||||||
const testState = reducer(preState, action);
|
// 'FIND_NOTES';
|
||||||
expect(testState.autocomplete).toEqual(words, 'Failed to update the autocomplete array');
|
// 'GET_NOTE';
|
||||||
});
|
// 'UPDATE_NOTES';
|
||||||
|
// 'SAVE_NOTE';
|
||||||
it('UPDATE_SAVED_PAGES', () => {
|
// 'DELETE_NOTE';
|
||||||
const savedPages = new Storable<readonly SavedPage[]>([
|
|
||||||
{
|
|
||||||
queries: [
|
|
||||||
{
|
|
||||||
qry: 'H123',
|
|
||||||
data: null,
|
|
||||||
type: CardType.Strongs,
|
|
||||||
} as CardItem,
|
|
||||||
{
|
|
||||||
qry: 'G123',
|
|
||||||
data: null,
|
|
||||||
type: CardType.Strongs,
|
|
||||||
} as CardItem,
|
|
||||||
],
|
|
||||||
// tslint:disable-next-line: quotemark
|
|
||||||
title: "Jason's Page",
|
|
||||||
id: 'myid',
|
|
||||||
},
|
|
||||||
]);
|
|
||||||
|
|
||||||
const action = AppActionFactory.newUpdateSavedPages(savedPages);
|
|
||||||
const testState = reducer(preState, action);
|
|
||||||
expect(testState.savedPages).toBe(savedPages, 'Failed to update the savedPages array');
|
|
||||||
expect(testState.savedPages.value.length).toBe(1, 'Updated savedPages is the wrong length');
|
|
||||||
expect(testState.savedPages.value[0].queries.length).toBe(
|
|
||||||
2,
|
|
||||||
'Updated savedPages first object has the wrong number of queries'
|
|
||||||
);
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
|
@ -44,7 +44,7 @@ export function reducer(state: AppState, action: AppAction): AppState {
|
|||||||
}
|
}
|
||||||
|
|
||||||
switch (action.type) {
|
switch (action.type) {
|
||||||
//#region
|
//#region Saved Page Settings
|
||||||
|
|
||||||
case 'UPDATE_CARD_MERGE_STRATEGY': {
|
case 'UPDATE_CARD_MERGE_STRATEGY': {
|
||||||
const settings = new Storable<PageSettings>({
|
const settings = new Storable<PageSettings>({
|
||||||
@ -136,7 +136,6 @@ export function reducer(state: AppState, action: AppAction): AppState {
|
|||||||
};
|
};
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
case 'REMOVE_SAVED_PAGE': {
|
case 'REMOVE_SAVED_PAGE': {
|
||||||
const savedPages = new Storable<SavedPage[]>(state.savedPages.value.filter((o) => o.id !== action.savedPage.id));
|
const savedPages = new Storable<SavedPage[]>(state.savedPages.value.filter((o) => o.id !== action.savedPage.id));
|
||||||
|
|
||||||
@ -149,18 +148,24 @@ export function reducer(state: AppState, action: AppAction): AppState {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
case 'UPDATE_CURRENT_PAGE': {
|
case 'UPDATE_CURRENT_PAGE': {
|
||||||
|
const current = {
|
||||||
|
id: state.currentSavedPage.id,
|
||||||
|
title: state.currentSavedPage.title,
|
||||||
|
queries: [...mergeCardList(state.cards, state.pageSettings.value.mergeStrategy)],
|
||||||
|
};
|
||||||
|
|
||||||
const savedPages = new Storable<SavedPage[]>([
|
const savedPages = new Storable<SavedPage[]>([
|
||||||
...state.savedPages.value.filter((o) => o.id !== state.currentSavedPage.id),
|
...state.savedPages.value.filter((o) => o.id !== state.currentSavedPage.id),
|
||||||
{
|
current,
|
||||||
id: state.currentSavedPage.id,
|
|
||||||
title: state.currentSavedPage.title,
|
|
||||||
queries: [...mergeCardList(state.cards, state.pageSettings.value.mergeStrategy)],
|
|
||||||
},
|
|
||||||
]);
|
]);
|
||||||
|
|
||||||
return reducer(state, {
|
return maybeMutateStorable(state, savedPages, state.savedPages, (item) => {
|
||||||
type: 'UPDATE_SAVED_PAGES',
|
return {
|
||||||
savedPages,
|
...state,
|
||||||
|
currentSavedPage: current,
|
||||||
|
savedPagesLoaded: true,
|
||||||
|
savedPages: item,
|
||||||
|
};
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
case 'SAVE_PAGE': {
|
case 'SAVE_PAGE': {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user