From c34fc69aaf5556f0134f2555af1070cf866ec0f7 Mon Sep 17 00:00:00 2001 From: Jason Wall Date: Sun, 9 Aug 2020 12:35:07 -0400 Subject: [PATCH] two bug fixes for card rendering clean up karma log more ui tests for the reducer --- app/db/karma.conf.js | 30 ++++++------- .../passage/passage-card.component.html | 3 +- .../strongs/card/strongs-card.component.ts | 7 ++- .../app/services/app-state-reducer.spec.ts | 44 ++++++++++++++++++- app/db/src/app/services/app.service.ts | 2 +- 5 files changed, 65 insertions(+), 21 deletions(-) diff --git a/app/db/karma.conf.js b/app/db/karma.conf.js index 37d2a84e..5724f25c 100644 --- a/app/db/karma.conf.js +++ b/app/db/karma.conf.js @@ -3,30 +3,30 @@ module.exports = function (config) { config.set({ - basePath: '', - frameworks: ['jasmine', '@angular-devkit/build-angular'], + basePath: "", + frameworks: ["jasmine", "@angular-devkit/build-angular"], plugins: [ - require('karma-jasmine'), - require('karma-chrome-launcher'), - require('karma-jasmine-html-reporter'), - require('karma-coverage-istanbul-reporter'), - require('@angular-devkit/build-angular/plugins/karma') + require("karma-jasmine"), + require("karma-chrome-launcher"), + require("karma-jasmine-html-reporter"), + require("karma-coverage-istanbul-reporter"), + require("@angular-devkit/build-angular/plugins/karma"), ], client: { - clearContext: false // leave Jasmine Spec Runner output visible in browser + clearContext: false, // leave Jasmine Spec Runner output visible in browser }, coverageIstanbulReporter: { - dir: require('path').join(__dirname, './coverage/db'), - reports: ['html', 'lcovonly', 'text-summary'], - fixWebpackSourcePaths: true + dir: require("path").join(__dirname, "./coverage/db"), + reports: ["html", "lcovonly", "text-summary"], + fixWebpackSourcePaths: true, }, - reporters: ['progress', 'kjhtml'], + reporters: ["progress", "kjhtml"], port: 9876, colors: true, - logLevel: config.LOG_INFO, + logLevel: config.LOG_WARN, autoWatch: true, - browsers: ['Chrome'], + browsers: ["Chrome"], singleRun: false, - restartOnFileChange: true + restartOnFileChange: true, }); }; diff --git a/app/db/src/app/search/components/passage/passage-card.component.html b/app/db/src/app/search/components/passage/passage-card.component.html index 38cedef3..3305c5ff 100644 --- a/app/db/src/app/search/components/passage/passage-card.component.html +++ b/app/db/src/app/search/components/passage/passage-card.component.html @@ -26,8 +26,7 @@

diff --git a/app/db/src/app/search/components/strongs/card/strongs-card.component.ts b/app/db/src/app/search/components/strongs/card/strongs-card.component.ts index 5dfe5910..dcd72ee4 100644 --- a/app/db/src/app/search/components/strongs/card/strongs-card.component.ts +++ b/app/db/src/app/search/components/strongs/card/strongs-card.component.ts @@ -1,4 +1,4 @@ -import { Component, ElementRef, ViewChild } from '@angular/core'; +import { Component, ElementRef, ViewChild, OnInit } from '@angular/core'; import { MatDialog } from '@angular/material/dialog'; import { AppService } from '../../../../services/app.service'; import { CardComponent } from '../../../../common/components/card.component'; @@ -11,7 +11,7 @@ import { StrongsModalComponent } from '../modal/strongs-modal.component'; styleUrls: ['./strongs-card.component.scss'], preserveWhitespaces: true, }) -export class StrongsCardComponent extends CardComponent { +export class StrongsCardComponent extends CardComponent implements OnInit { asModal = false; @ViewChild('strongs') strongsElement: ElementRef; @@ -24,6 +24,9 @@ export class StrongsCardComponent extends CardComponent { }) ); } + ngOnInit(): void { + console.log(this.cardItem); + } copy() { const html = this.strongsElement.nativeElement.innerHTML; diff --git a/app/db/src/app/services/app-state-reducer.spec.ts b/app/db/src/app/services/app-state-reducer.spec.ts index ad7819ae..b2a40399 100644 --- a/app/db/src/app/services/app-state-reducer.spec.ts +++ b/app/db/src/app/services/app-state-reducer.spec.ts @@ -2,7 +2,8 @@ import { TestBed } from '@angular/core/testing'; import { reducer } from './app-state-reducer'; import { AppAction, AppActionFactory } from './app-state-actions'; import { Overlap } from '../common/bible-reference'; -import { CardType } from '../models/app-state'; +import { CardType, SavedPage } from '../models/app-state'; +import { IStorable, Storable } from '../models/storable'; describe('AppService Reducer', () => { const preState = { @@ -231,4 +232,45 @@ describe('AppService Reducer', () => { expect(testState6.cards.length).toBe(3, 'Failed to add third card'); expect(testState6.cards[0]).toBe(card3, 'Failed to insert card at start of the list'); }); + + 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([ + { + queries: [ + { + qry: 'H123', + data: null, + type: CardType.Strongs, + dict: 'H', + }, + { + qry: 'G123', + data: null, + type: CardType.Strongs, + dict: 'G', + }, + ], + // 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( + 1, + 'Updated savedPages first object has the wrong number of queries' + ); + }); }); diff --git a/app/db/src/app/services/app.service.ts b/app/db/src/app/services/app.service.ts index 0e2e7f76..afc0c3c6 100644 --- a/app/db/src/app/services/app.service.ts +++ b/app/db/src/app/services/app.service.ts @@ -196,7 +196,7 @@ export class AppService extends createStateService(reducer, initialState) { const card = { qry: `${d}${strongsNumber}`, dict: d, - type: CardType.Word, + type: CardType.Strongs, data: result, }; return card;