Skip to content

Commit 8ddf984

Browse files
committed
refactor: switch to standalone components
1 parent 3d44c39 commit 8ddf984

18 files changed

Lines changed: 140 additions & 151 deletions

src/app/app.component.spec.ts

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,18 @@
11
import { TestBed } from '@angular/core/testing';
22
import { AppComponent } from './app.component';
3-
import { TestingModule } from './testing.module';
4-
import { MatToolbarModule } from '@angular/material/toolbar';
5-
import { AppModule } from './app.module';
3+
import { AuthService } from './services/auth.service';
4+
import { ActivatedRoute } from '@angular/router';
65

76
describe('AppComponent', () => {
8-
beforeEach(() =>
9-
TestBed.configureTestingModule({
10-
imports: [TestingModule, MatToolbarModule, AppModule],
11-
declarations: [AppComponent],
12-
}),
13-
);
7+
beforeEach(async () => {
8+
await TestBed.configureTestingModule({
9+
imports: [AppComponent],
10+
providers: [
11+
{ provide: ActivatedRoute, useValue: {} },
12+
{ provide: AuthService, useValue: {} },
13+
],
14+
}).compileComponents();
15+
});
1416

1517
it('should create the app', () => {
1618
const fixture = TestBed.createComponent(AppComponent);

src/app/app.component.ts

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,31 @@
11
import { Component, OnInit, OnDestroy } from '@angular/core';
2-
import { AuthService } from './services/auth.service';
2+
import { CommonModule } from '@angular/common';
3+
import { RouterModule, RouterOutlet } from '@angular/router';
4+
import { MatMenuModule } from '@angular/material/menu';
5+
import { MatIconModule } from '@angular/material/icon';
6+
import { MatTooltipModule } from '@angular/material/tooltip';
7+
import { MatButtonModule, MatIconButton } from '@angular/material/button';
8+
import { MatToolbarModule } from '@angular/material/toolbar';
39
import { Subscription } from 'rxjs';
10+
import { AuthenticationComponent } from './components/authentication/authentication.component';
11+
import { AuthService } from './services/auth.service';
412

513
@Component({
6-
standalone: false,
714
selector: 'app-root',
815
templateUrl: './app.component.html',
916
styleUrls: ['./app.component.scss'],
17+
imports: [
18+
CommonModule,
19+
RouterModule,
20+
RouterOutlet,
21+
MatToolbarModule,
22+
MatMenuModule,
23+
MatButtonModule,
24+
MatIconModule,
25+
MatTooltipModule,
26+
MatIconButton,
27+
AuthenticationComponent,
28+
],
1029
})
1130
export class AppComponent implements OnInit, OnDestroy {
1231
isLoggedIn = false;

src/app/app.config.ts

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
import { ApplicationConfig, provideZoneChangeDetection } from '@angular/core';
2+
import { provideRouter } from '@angular/router';
3+
4+
import { routes } from './app.routes';
5+
import { provideHttpClient } from '@angular/common/http';
6+
import { provideAnimations } from '@angular/platform-browser/animations';
7+
8+
export const appConfig: ApplicationConfig = {
9+
providers: [
10+
provideZoneChangeDetection({ eventCoalescing: true }),
11+
provideRouter(routes),
12+
provideHttpClient(),
13+
provideAnimations(),
14+
],
15+
};

src/app/app.module.ts

Lines changed: 0 additions & 65 deletions
This file was deleted.
Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,11 @@
1-
import { NgModule } from '@angular/core';
2-
import { RouterModule, Routes } from '@angular/router';
1+
import { Routes } from '@angular/router';
32
import { QueryComponent } from './components/query/query.component';
43
import { CatalogBrowserComponent } from './components/catalog-browser/catalog-browser.component';
54
import { NodeDetailsComponent } from './components/node-details/node-details.component';
65

7-
const routes: Routes = [
6+
export const routes: Routes = [
87
{ path: 'nodes', component: CatalogBrowserComponent },
98
{ path: 'query', component: QueryComponent },
109
{ path: 'nodes/:id', component: NodeDetailsComponent },
1110
{ path: '', redirectTo: 'nodes', pathMatch: 'full' },
1211
];
13-
14-
@NgModule({
15-
imports: [RouterModule.forRoot(routes)],
16-
exports: [RouterModule],
17-
})
18-
export class AppRoutingModule {}

src/app/components/authentication/authentication.component.spec.ts

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,17 @@
11
import { ComponentFixture, TestBed } from '@angular/core/testing';
2-
2+
import { of } from 'rxjs';
33
import { AuthenticationComponent } from './authentication.component';
4-
import { TestingModule } from '../../testing.module';
5-
import { MatFormFieldModule } from '@angular/material/form-field';
6-
import { NO_ERRORS_SCHEMA } from '@angular/core';
7-
import { MatInputModule } from '@angular/material/input';
8-
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
4+
import { AuthService } from '../../services/auth.service';
95

106
describe('AuthenticationComponent', () => {
117
let component: AuthenticationComponent;
128
let fixture: ComponentFixture<AuthenticationComponent>;
139

1410
beforeEach(async () => {
1511
await TestBed.configureTestingModule({
16-
imports: [TestingModule, MatFormFieldModule, MatInputModule, BrowserAnimationsModule],
17-
declarations: [AuthenticationComponent],
18-
schemas: [NO_ERRORS_SCHEMA],
12+
imports: [AuthenticationComponent],
13+
14+
providers: [{ provide: AuthService, useValue: { isLoggedIn$: of(true) } }],
1915
}).compileComponents();
2016

2117
fixture = TestBed.createComponent(AuthenticationComponent);

src/app/components/authentication/authentication.component.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,17 @@
11
import { Component, OnInit, OnDestroy } from '@angular/core';
2-
import { MatSnackBar } from '@angular/material/snack-bar';
2+
import { CommonModule } from '@angular/common';
3+
import { FormsModule } from '@angular/forms';
4+
import { MatInputModule } from '@angular/material/input';
5+
import { MatButtonModule } from '@angular/material/button';
6+
import { MatSnackBarModule, MatSnackBar } from '@angular/material/snack-bar';
37
import { AuthService } from 'src/app/services/auth.service';
48
import { Subscription } from 'rxjs';
59

610
@Component({
7-
standalone: false,
811
selector: 'app-authentication',
912
templateUrl: './authentication.component.html',
1013
styleUrls: ['./authentication.component.scss'],
14+
imports: [CommonModule, FormsModule, MatInputModule, MatButtonModule, MatSnackBarModule],
1115
})
1216
export class AuthenticationComponent implements OnInit, OnDestroy {
1317
username = '';

src/app/components/catalog-browser/catalog-browser.component.spec.ts

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,15 @@
11
import { ComponentFixture, TestBed } from '@angular/core/testing';
2-
32
import { CatalogBrowserComponent } from './catalog-browser.component';
4-
import { TestingModule } from '../../testing.module';
5-
import { MatCardModule } from '@angular/material/card';
3+
import { QueryService } from '../../services/query.service';
64

75
describe('CatalogBrowserComponent', () => {
86
let component: CatalogBrowserComponent;
97
let fixture: ComponentFixture<CatalogBrowserComponent>;
108

119
beforeEach(() => {
1210
TestBed.configureTestingModule({
13-
imports: [TestingModule, MatCardModule],
14-
declarations: [CatalogBrowserComponent],
11+
imports: [CatalogBrowserComponent],
12+
providers: [{ provide: QueryService, useValue: {} }],
1513
});
1614
fixture = TestBed.createComponent(CatalogBrowserComponent);
1715
component = fixture.componentInstance;

src/app/components/catalog-browser/catalog-browser.component.ts

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,29 @@
11
import { Component } from '@angular/core';
2-
import { NodeQueryResult } from '../../types/dtos';
3-
import { QueryService } from '../../services/query.service';
4-
2+
import { CommonModule } from '@angular/common';
3+
import { FormsModule } from '@angular/forms';
4+
import { MatCardModule } from '@angular/material/card';
5+
import { MatTabsModule } from '@angular/material/tabs';
6+
import { MatIconModule } from '@angular/material/icon';
57
import { BehaviorSubject, combineLatest, Observable, Subject } from 'rxjs';
68
import { map, switchMap, scan, startWith, concatMap } from 'rxjs/operators';
9+
import { NodeQueryResult } from '../../types/dtos';
10+
import { QueryService } from '../../services/query.service';
11+
import { NodeTableComponent } from '../node-table/node-table.component';
12+
import { MatButtonModule } from '@angular/material/button';
713

814
@Component({
9-
standalone: false,
1015
selector: 'app-catalog-browser',
1116
templateUrl: './catalog-browser.component.html',
1217
styleUrls: ['./catalog-browser.component.scss'],
18+
imports: [
19+
CommonModule,
20+
FormsModule,
21+
MatCardModule,
22+
MatTabsModule,
23+
MatButtonModule,
24+
MatIconModule,
25+
NodeTableComponent,
26+
],
1327
})
1428
export class CatalogBrowserComponent {
1529
public readonly data$: Observable<{ totalCount: number; nodes: NodeQueryResult[] }>;

src/app/components/node-details/node-details.component.spec.ts

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,24 @@
11
import { ComponentFixture, TestBed } from '@angular/core/testing';
2-
3-
import { NodeDetailsComponent } from './node-details.component';
4-
import { TestingModule } from '../../testing.module';
52
import { ActivatedRoute } from '@angular/router';
63
import { of } from 'rxjs';
4+
import { NodeDetailsComponent } from './node-details.component';
5+
import { QueryService } from '../../services/query.service';
76

87
describe('NodeDetailsComponent', () => {
98
let component: NodeDetailsComponent;
109
let fixture: ComponentFixture<NodeDetailsComponent>;
1110

1211
beforeEach(() => {
1312
TestBed.configureTestingModule({
14-
imports: [TestingModule],
15-
declarations: [NodeDetailsComponent],
13+
imports: [NodeDetailsComponent],
1614
providers: [
1715
{
1816
provide: ActivatedRoute,
1917
useValue: {
2018
params: of({ id: 123 }),
2119
},
2220
},
21+
{ provide: QueryService, useValue: {} },
2322
],
2423
});
2524
fixture = TestBed.createComponent(NodeDetailsComponent);

0 commit comments

Comments
 (0)