Skip to content
This repository was archived by the owner on Dec 27, 2024. It is now read-only.

Commit 4299fbf

Browse files
committed
#10 progress
1 parent 2a1a700 commit 4299fbf

17 files changed

+700
-18
lines changed

package-lock.json

Lines changed: 21 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
"@angular/service-worker": "^5.2.8",
3636
"@types/moment": "^2.13.0",
3737
"core-js": "^2.4.1",
38+
"localforage": "^1.6.0",
3839
"moment": "^2.21.0",
3940
"normalize.css": "^8.0.0",
4041
"rxjs": "^5.5.6",

src/app/app.component.spec.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,14 @@ import {AppComponent} from './app.component';
1010
import {SharedModule} from './shared/shared.module';
1111

1212
@Injectable()
13-
class MockSwUpdate {
13+
export class MockSwUpdate {
1414
available(): Observable<any> {
1515
return Observable.of();
1616
}
1717
}
1818

19+
export const MockSwProvider = {provide: SwUpdate, useClass: MockSwUpdate};
20+
1921
describe('AppComponent', () => {
2022
beforeEach(async(() => {
2123
TestBed
@@ -28,7 +30,7 @@ describe('AppComponent', () => {
2830
AppComponent
2931
],
3032
providers: [
31-
{provide: SwUpdate, useClass: MockSwUpdate}
33+
MockSwProvider
3234
]
3335
}).compileComponents();
3436
}));

src/app/app.component.ts

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
import {
22
Component,
33
OnInit
4-
} from '@angular/core';
5-
import {SwUpdate} from '@angular/service-worker';
6-
import {LogService} from './shared/services/log.service';
4+
} from '@angular/core';
5+
import {SwUpdate} from '@angular/service-worker';
6+
import {BrowserService} from './shared/services/browser.service';
7+
import {LogService} from './shared/services/log.service';
8+
import {LocalStorageService} from './shared/services/storage.service';
79

810
@Component({
911
selector: 'app-root',
@@ -12,11 +14,13 @@ import {LogService} from './shared/services/log.service';
1214
})
1315
export class AppComponent implements OnInit {
1416

15-
constructor(private log: LogService,
17+
constructor(private browser: BrowserService,
18+
private log: LogService,
19+
private store: LocalStorageService,
1620
private swUpdate: SwUpdate) {
1721
}
1822

19-
ngOnInit() {
23+
async ngOnInit() {
2024
if (this.swUpdate.isEnabled) {
2125
this
2226
.swUpdate
@@ -25,7 +29,7 @@ export class AppComponent implements OnInit {
2529
this.log.info('Service worker update available');
2630

2731
if (confirm('A new version of the site is available. Reload?')) {
28-
window.location.reload();
32+
this.browser.window.location.reload();
2933
}
3034
});
3135
}

src/app/home/home.component.spec.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import {
55
TestBed
66
} from '@angular/core/testing';
77
import {NoopAnimationsModule} from '@angular/platform-browser/animations';
8+
import {MockSwProvider} from '../app.component.spec';
89
import {SharedModule} from '../shared/shared.module';
910
import {HomeComponent} from './home.component';
1011

@@ -22,6 +23,9 @@ describe('HomeComponent', () => {
2223
HttpClientTestingModule,
2324
NoopAnimationsModule,
2425
SharedModule
26+
],
27+
providers: [
28+
MockSwProvider
2529
]
2630
})
2731
.compileComponents();

src/app/shared/components/feature-card/feature-card-state.service.spec.ts

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,21 @@
1-
import { TestBed, inject } from '@angular/core/testing';
1+
import {
2+
inject,
3+
TestBed
4+
} from '@angular/core/testing';
5+
import {MockSwProvider} from '../../../app.component.spec';
6+
import {SharedModule} from '../../shared.module';
27

3-
import { FeatureCardStateService } from './feature-card-state.service';
8+
import {FeatureCardStateService} from './feature-card-state.service';
49

510
describe('FeatureCardStateService', () => {
611
beforeEach(() => {
7-
TestBed.configureTestingModule({
8-
providers: [FeatureCardStateService]
9-
});
12+
TestBed
13+
.configureTestingModule({
14+
imports: [SharedModule],
15+
providers: [
16+
MockSwProvider
17+
]
18+
});
1019
});
1120

1221
it('should be created', inject([FeatureCardStateService], (service: FeatureCardStateService) => {

src/app/shared/components/feature-card/feature-card.component.spec.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import {
44
ComponentFixture,
55
TestBed
66
} from '@angular/core/testing';
7+
import {MockSwProvider} from '../../../app.component.spec';
78
import {SharedModule} from '../../shared.module';
89

910
import {FeatureCardComponent} from './feature-card.component';
@@ -18,6 +19,9 @@ describe('FeatureCardComponent', () => {
1819
imports: [
1920
HttpClientTestingModule,
2021
SharedModule
22+
],
23+
providers: [
24+
MockSwProvider
2125
]
2226
})
2327
.compileComponents();

src/app/shared/components/feature-card/feature-card.component.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import {
55
Input,
66
OnInit
77
} from '@angular/core';
8-
import {GithubService} from '../../services/github.service';
8+
import {BrowserService} from '../../services/browser.service';
99
import {FeatureCardStateService} from './feature-card-state.service';
1010

1111
@Component({
@@ -25,8 +25,8 @@ export class FeatureCardComponent implements OnInit {
2525
return this.hidden ? 'none' : '';
2626
}
2727

28-
constructor(private cardState: FeatureCardStateService,
29-
private github: GithubService) {
28+
constructor(private browser: BrowserService,
29+
private cardState: FeatureCardStateService) {
3030
this.borderColor = cardState.nextColor();
3131
}
3232

@@ -35,7 +35,7 @@ export class FeatureCardComponent implements OnInit {
3535

3636
@HostListener('click')
3737
onClick() {
38-
window.location.href = this.href;
38+
this.browser.window.location.href = this.href;
3939
}
4040

4141
}

src/app/shared/components/projects-cards/projects-cards.component.spec.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import {
44
ComponentFixture,
55
TestBed
66
} from '@angular/core/testing';
7+
import {MockSwProvider} from '../../../app.component.spec';
78
import {SharedModule} from '../../shared.module';
89

910
import {ProjectsCardsComponent} from './projects-cards.component';
@@ -18,6 +19,9 @@ describe('ProjectsCardsComponent', () => {
1819
imports: [
1920
HttpClientTestingModule,
2021
SharedModule
22+
],
23+
providers: [
24+
MockSwProvider
2125
]
2226
})
2327
.compileComponents();

src/app/shared/rxjs-imports.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
import 'rxjs/add/observable/defer';
22
import 'rxjs/add/observable/from';
3+
import 'rxjs/add/observable/fromPromise';
34
import 'rxjs/add/observable/of';
45
import 'rxjs/add/observable/throw';
6+
import 'rxjs/add/observable/forkJoin';
57

68
import 'rxjs/add/operator/catch';
79
import 'rxjs/add/operator/concatMap';

0 commit comments

Comments
 (0)