@@ -20,15 +20,18 @@ class DashboardComponentPage extends PageObject<DashboardComponent> {
2020 get dbVersion ( ) : HTMLTableCellElement {
2121 return this . query < HTMLTableCellElement > ( '#db-version' ) ;
2222 }
23- get dbWorldVersion ( ) : HTMLTableCellElement {
24- return this . query < HTMLTableCellElement > ( '#db-world-version' ) ;
25- }
26- get dbWarning ( ) : HTMLDivElement {
27- return this . query < HTMLDivElement > ( '#database-warning' , false ) ;
23+ // get dbWorldVersion(): HTMLTableCellElement {
24+ // return this.query<HTMLTableCellElement>('#db-world-version');
25+ // }
26+ dbWarning ( assert = true ) : HTMLDivElement {
27+ return this . query < HTMLDivElement > ( '#database-warning' , assert ) ;
2828 }
2929 get commitHashUrl ( ) : HTMLAnchorElement {
3030 return this . query < HTMLAnchorElement > ( '#commit-hash-url' ) ;
3131 }
32+ get reloadBtn ( ) : HTMLButtonElement {
33+ return this . query < HTMLButtonElement > ( '#reload-btn' ) ;
34+ }
3235}
3336
3437describe ( 'DashboardComponent' , ( ) => {
@@ -38,6 +41,12 @@ describe('DashboardComponent', () => {
3841 db_version : 'ACDB 335.3 (dev)' ,
3942 cache_id : 3 ,
4043 } ;
44+ const wrongVersionRow : VersionRow = {
45+ core_version : 'ShinCore rev. 2bcedc2859e7 2019-02-17 10:04:09 +0100 (master branch) (Unix, Debug)' ,
46+ core_revision : '2bcedc2859e7' ,
47+ db_version : 'SHINDB 335.3 (dev)' ,
48+ cache_id : 3 ,
49+ } ;
4150 const worldDbVersion = '2019_02_17_02' ;
4251 const versionDbRow : VersionDbRow = {
4352 sql_rev : 123 ,
@@ -66,20 +75,19 @@ describe('DashboardComponent', () => {
6675 } ;
6776
6877 it ( 'should correctly display the versions' , ( ) => {
69- const { fixture , page, component } = setup ( ) ;
70- fixture . detectChanges ( ) ;
78+ const { page } = setup ( ) ;
79+ page . detectChanges ( ) ;
7180
7281 expect ( page . coreVersion . innerHTML ) . toContain ( versionRow . core_version ) ;
7382 expect ( page . coreRevision . innerHTML ) . toContain ( versionRow . core_revision ) ;
7483 expect ( page . dbVersion . innerHTML ) . toContain ( versionRow . db_version ) ;
7584 expect ( page . commitHashUrl . href ) . toEqual ( `https://github.com/azerothcore/azerothcore-wotlk/commit/${ versionRow . core_revision } ` ) ;
7685 // expect(page.dbWorldVersion.innerHTML).toContain(worldDbVersion);
77- expect ( page . dbWarning ) . toBe ( null ) ;
78- expect ( component . error ) . toBe ( false ) ;
86+ expect ( page . dbWarning ( false ) ) . toBeFalsy ( ) ;
7987 } ) ;
8088
8189 it ( 'if the revision hash ends with a "+", it should be stripped in the url' , ( ) => {
82- const { fixture , page } = setup ( ) ;
90+ const { page } = setup ( ) ;
8391 when ( MockedMysqlQueryService . query ( 'SELECT * FROM version' ) ) . thenReturn (
8492 of ( [
8593 {
@@ -89,50 +97,78 @@ describe('DashboardComponent', () => {
8997 ] ) ,
9098 ) ;
9199
92- fixture . detectChanges ( ) ;
100+ page . detectChanges ( ) ;
93101
94102 expect ( page . commitHashUrl . href ) . toEqual ( `https://github.com/azerothcore/azerothcore-wotlk/commit/${ versionRow . core_revision } ` ) ;
95103 } ) ;
96104
105+ describe ( 'refresh button' , ( ) => {
106+ it ( 'when the refresh button is clicked, it should correctly reload the data' , ( ) => {
107+ const { page } = setup ( ) ;
108+ page . detectChanges ( ) ;
109+ expect ( page . coreVersion . innerHTML ) . toContain ( versionRow . core_version ) ;
110+
111+ const newVersion = 'A new fantastic AzerothCore version!' ;
112+ when ( MockedMysqlQueryService . query ( 'SELECT * FROM version' ) ) . thenReturn (
113+ of ( [
114+ {
115+ ...versionRow ,
116+ core_version : newVersion ,
117+ } ,
118+ ] ) ,
119+ ) ;
120+ page . reloadBtn . click ( ) ;
121+ page . detectChanges ( ) ;
122+
123+ expect ( page . coreVersion . innerHTML ) . not . toContain ( versionRow . core_version ) ;
124+ expect ( page . coreVersion . innerHTML ) . toContain ( newVersion ) ;
125+ } ) ;
126+
127+ it ( 'when clicked after an error, it should clear the error out' , ( ) => {
128+ const { page } = setup ( ) ;
129+
130+ when ( MockedMysqlQueryService . query ( anyString ( ) ) ) . thenReturn ( of ( [ wrongVersionRow ] ) ) ;
131+ page . detectChanges ( ) ;
132+ expect ( page . dbWarning ( ) ) . toBeDefined ( ) ;
133+
134+ when ( MockedMysqlQueryService . query ( anyString ( ) ) ) . thenReturn ( of ( [ versionRow ] ) ) ;
135+ page . reloadBtn . click ( ) ;
136+ page . detectChanges ( ) ;
137+
138+ expect ( page . dbWarning ( false ) ) . toBeFalsy ( ) ;
139+ } ) ;
140+ } ) ;
141+
97142 it ( 'should correctly give error if the query does not return the data in the expected format' , ( ) => {
98- const { fixture , page, component } = setup ( ) ;
143+ const { page } = setup ( ) ;
99144 when ( MockedMysqlQueryService . query ( anyString ( ) ) ) . thenReturn ( of ( [ ] ) ) ;
100145 const errorSpy = spyOn ( console , 'error' ) ;
101146
102- fixture . detectChanges ( ) ;
147+ page . detectChanges ( ) ;
103148
104149 expect ( errorSpy ) . toHaveBeenCalledTimes ( 1 ) ;
105- expect ( page . dbWarning ) . toBe ( null ) ;
106- expect ( component . error ) . toBe ( false ) ;
150+ expect ( page . dbWarning ( false ) ) . toBeFalsy ( ) ;
107151 } ) ;
108152
109153 it ( 'should correctly give error if the query returns an error' , ( ) => {
110- const { fixture , page, component } = setup ( ) ;
154+ const { page } = setup ( ) ;
111155 const error = 'some error' ;
112156 when ( MockedMysqlQueryService . query ( anyString ( ) ) ) . thenReturn ( throwError ( error ) ) ;
113157 const errorSpy = spyOn ( console , 'error' ) ;
114158
115- fixture . detectChanges ( ) ;
159+ page . detectChanges ( ) ;
116160
117161 expect ( errorSpy ) . toHaveBeenCalledTimes ( 1 ) ;
118162 expect ( errorSpy ) . toHaveBeenCalledWith ( error ) ;
119- expect ( page . dbWarning ) . toBeDefined ( ) ;
120- expect ( component . error ) . toBe ( true ) ;
163+ expect ( page . dbWarning ( ) ) . toBeDefined ( ) ;
121164 } ) ;
122165
123166 it ( 'should correctly give error if the query returns an error' , ( ) => {
124- const { fixture, page, component } = setup ( ) ;
125- const wrongVersionRow : VersionRow = {
126- core_version : 'ShinCore rev. 2bcedc2859e7 2019-02-17 10:04:09 +0100 (master branch) (Unix, Debug)' ,
127- core_revision : '2bcedc2859e7' ,
128- db_version : 'SHINDB 335.3 (dev)' ,
129- cache_id : 3 ,
130- } ;
167+ const { page } = setup ( ) ;
131168 when ( MockedMysqlQueryService . query ( anyString ( ) ) ) . thenReturn ( of ( [ wrongVersionRow ] ) ) ;
132169
133- fixture . detectChanges ( ) ;
170+ page . detectChanges ( ) ;
134171
135- expect ( page . dbWarning ) . toBeDefined ( ) ;
136- expect ( component . error ) . toBe ( true ) ;
172+ expect ( page . dbWarning ( ) ) . toBeDefined ( ) ;
137173 } ) ;
138174} ) ;
0 commit comments