mirror of
https://github.com/Mueller-Patrick/Betterzon.git
synced 2026-05-26 04:28:05 +00:00
Adjusting some frontend tests
This commit is contained in:
@@ -1,25 +1,54 @@
|
||||
import { ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
import {ComponentFixture, TestBed} from '@angular/core/testing';
|
||||
|
||||
import { RegistrationComponent } from './registration.component';
|
||||
import {RegistrationComponent} from './registration.component';
|
||||
import {AbstractMockObservableService} from '../../../mocks/mock.service';
|
||||
import {ApiService} from '../../../services/api.service';
|
||||
import {FormBuilder, FormControl, Validators} from '@angular/forms';
|
||||
import {Router} from '@angular/router';
|
||||
|
||||
class MockApiService extends AbstractMockObservableService {
|
||||
registerUser(username: string, password: string, email: string): any {
|
||||
this.content = [];
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
describe('RegistrationComponent', () => {
|
||||
let component: RegistrationComponent;
|
||||
let fixture: ComponentFixture<RegistrationComponent>;
|
||||
let component: RegistrationComponent;
|
||||
let fixture: ComponentFixture<RegistrationComponent>;
|
||||
let mockService;
|
||||
let formBuilder: FormBuilder;
|
||||
const router = {
|
||||
navigate: jasmine.createSpy('navigate'),
|
||||
routerState: jasmine.createSpy('routerState')
|
||||
};
|
||||
|
||||
beforeEach(async () => {
|
||||
await TestBed.configureTestingModule({
|
||||
declarations: [ RegistrationComponent ]
|
||||
})
|
||||
.compileComponents();
|
||||
});
|
||||
beforeEach(async () => {
|
||||
mockService = new MockApiService();
|
||||
await TestBed.configureTestingModule({
|
||||
declarations: [RegistrationComponent],
|
||||
providers: [{provide: ApiService, useValue: mockService}, {provide: Router, useValue: router}, FormBuilder]
|
||||
})
|
||||
.compileComponents();
|
||||
});
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(RegistrationComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(RegistrationComponent);
|
||||
component = fixture.componentInstance;
|
||||
formBuilder = TestBed.get(FormBuilder);
|
||||
component.form = formBuilder.group({
|
||||
recipientTypes: new FormControl(
|
||||
{
|
||||
value: ['mock'],
|
||||
disabled: true
|
||||
},
|
||||
Validators.required
|
||||
)
|
||||
});
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
});
|
||||
|
||||
@@ -1,25 +1,54 @@
|
||||
import { ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
import {ComponentFixture, TestBed} from '@angular/core/testing';
|
||||
|
||||
import { SigninComponent } from './signin.component';
|
||||
import {SigninComponent} from './signin.component';
|
||||
import {AbstractMockObservableService} from '../../../mocks/mock.service';
|
||||
import {ApiService} from '../../../services/api.service';
|
||||
import {FormBuilder, FormControl, Validators} from '@angular/forms';
|
||||
import {Router} from '@angular/router';
|
||||
|
||||
class MockApiService extends AbstractMockObservableService {
|
||||
loginUser(username: string, password: string): any {
|
||||
this.content = [];
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
describe('SigninComponent', () => {
|
||||
let component: SigninComponent;
|
||||
let fixture: ComponentFixture<SigninComponent>;
|
||||
let component: SigninComponent;
|
||||
let fixture: ComponentFixture<SigninComponent>;
|
||||
let mockService;
|
||||
let formBuilder: FormBuilder;
|
||||
const router = {
|
||||
navigate: jasmine.createSpy('navigate'),
|
||||
routerState: jasmine.createSpy('routerState')
|
||||
};
|
||||
|
||||
beforeEach(async () => {
|
||||
await TestBed.configureTestingModule({
|
||||
declarations: [ SigninComponent ]
|
||||
})
|
||||
.compileComponents();
|
||||
});
|
||||
beforeEach(async () => {
|
||||
mockService = new MockApiService();
|
||||
await TestBed.configureTestingModule({
|
||||
declarations: [SigninComponent],
|
||||
providers: [{provide: ApiService, useValue: mockService}, {provide: Router, useValue: router}, FormBuilder]
|
||||
})
|
||||
.compileComponents();
|
||||
});
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(SigninComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(SigninComponent);
|
||||
component = fixture.componentInstance;
|
||||
formBuilder = TestBed.get(FormBuilder);
|
||||
component.loginForm = formBuilder.group({
|
||||
recipientTypes: new FormControl(
|
||||
{
|
||||
value: ['mock'],
|
||||
disabled: true
|
||||
},
|
||||
Validators.required
|
||||
)
|
||||
});
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
});
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
#imprintSection {
|
||||
right: 1em;
|
||||
bottom: 1em;
|
||||
width: 100%;
|
||||
text-align: right;
|
||||
padding-right: 1em;
|
||||
grid-area: right;
|
||||
}
|
||||
|
||||
#imprintSection a {
|
||||
color: white;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
#copyright {
|
||||
display: grid;
|
||||
grid-template-areas:
|
||||
'left center right';
|
||||
grid-template-columns: 30% 40% 30%;
|
||||
}
|
||||
|
||||
#copyright-text {
|
||||
grid-area: center;
|
||||
}
|
||||
|
||||
@@ -1,3 +1,7 @@
|
||||
<div class="copyright py-4 text-center text-white">
|
||||
<div class="container"><small>Copyright © Betterzon 2021</small></div>
|
||||
<div class="copyright py-4 text-center text-white" id="copyright">
|
||||
<div class="container" id="copyright-text"><small>Copyright © Betterzon 2021</small></div>
|
||||
<div id="imprintSection">
|
||||
<a href="/impressum" >Imprint</a><br>
|
||||
<a href="/datenschutz">Privacy Policy</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,25 +1,58 @@
|
||||
import { ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
import {ComponentFixture, TestBed} from '@angular/core/testing';
|
||||
|
||||
import { HotDealsWidgetComponent } from './hot-deals-widget.component';
|
||||
import {HotDealsWidgetComponent} from './hot-deals-widget.component';
|
||||
import {AbstractMockObservableService} from '../../mocks/mock.service';
|
||||
import {ApiService} from '../../services/api.service';
|
||||
import {ActivatedRoute, convertToParamMap, Router} from '@angular/router';
|
||||
import {Observable, of} from 'rxjs';
|
||||
|
||||
class MockApiService extends AbstractMockObservableService {
|
||||
getBestDeals(): any {
|
||||
this.content = [];
|
||||
return this;
|
||||
}
|
||||
|
||||
getProductsByIds(): any {
|
||||
this.content = [];
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
class ActivatedRouteMock {
|
||||
public paramMap = of(convertToParamMap({
|
||||
testId: 'abc123',
|
||||
anotherId: 'd31e8b48-7309-4c83-9884-4142efdf7271',
|
||||
}));
|
||||
}
|
||||
|
||||
describe('HotDealsWidgetComponent', () => {
|
||||
let component: HotDealsWidgetComponent;
|
||||
let fixture: ComponentFixture<HotDealsWidgetComponent>;
|
||||
let component: HotDealsWidgetComponent;
|
||||
let fixture: ComponentFixture<HotDealsWidgetComponent>;
|
||||
let mockService;
|
||||
const router = {
|
||||
navigate: jasmine.createSpy('navigate'),
|
||||
routerState: jasmine.createSpy('routerState')
|
||||
};
|
||||
|
||||
beforeEach(async () => {
|
||||
await TestBed.configureTestingModule({
|
||||
declarations: [ HotDealsWidgetComponent ]
|
||||
})
|
||||
.compileComponents();
|
||||
});
|
||||
beforeEach(async () => {
|
||||
mockService = new MockApiService();
|
||||
await TestBed.configureTestingModule({
|
||||
declarations: [HotDealsWidgetComponent],
|
||||
providers: [{provide: ApiService, useValue: mockService}, {provide: Router, useValue: router}, {
|
||||
provide: ActivatedRoute,
|
||||
useValue: ActivatedRouteMock
|
||||
}]
|
||||
})
|
||||
.compileComponents();
|
||||
});
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(HotDealsWidgetComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(HotDealsWidgetComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
});
|
||||
|
||||
@@ -1,25 +1,53 @@
|
||||
import { ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
import {ComponentFixture, TestBed} from '@angular/core/testing';
|
||||
|
||||
import { KundenComponent } from './kunden.component';
|
||||
import {KundenComponent} from './kunden.component';
|
||||
import {AbstractMockObservableService} from '../../mocks/mock.service';
|
||||
import {ApiService} from '../../services/api.service';
|
||||
import {ActivatedRoute, convertToParamMap, Router} from '@angular/router';
|
||||
import {of} from 'rxjs';
|
||||
|
||||
class MockApiService extends AbstractMockObservableService {
|
||||
getProducts(): any {
|
||||
this.content = [];
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
class ActivatedRouteMock {
|
||||
public paramMap = of(convertToParamMap({
|
||||
testId: 'abc123',
|
||||
anotherId: 'd31e8b48-7309-4c83-9884-4142efdf7271',
|
||||
}));
|
||||
}
|
||||
|
||||
describe('KundenComponent', () => {
|
||||
let component: KundenComponent;
|
||||
let fixture: ComponentFixture<KundenComponent>;
|
||||
let component: KundenComponent;
|
||||
let fixture: ComponentFixture<KundenComponent>;
|
||||
let mockService;
|
||||
const router = {
|
||||
navigate: jasmine.createSpy('navigate'),
|
||||
routerState: jasmine.createSpy('routerState')
|
||||
};
|
||||
|
||||
beforeEach(async () => {
|
||||
await TestBed.configureTestingModule({
|
||||
declarations: [ KundenComponent ]
|
||||
})
|
||||
.compileComponents();
|
||||
});
|
||||
beforeEach(async () => {
|
||||
mockService = new MockApiService();
|
||||
await TestBed.configureTestingModule({
|
||||
declarations: [KundenComponent],
|
||||
providers: [{provide: ApiService, useValue: mockService}, {provide: Router, useValue: router}, {
|
||||
provide: ActivatedRoute,
|
||||
useValue: ActivatedRouteMock
|
||||
}]
|
||||
})
|
||||
.compileComponents();
|
||||
});
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(KundenComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(KundenComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
});
|
||||
|
||||
@@ -58,6 +58,11 @@ class MockApiService extends AbstractMockObservableService {
|
||||
this.content = [vendor];
|
||||
return this;
|
||||
}
|
||||
|
||||
getSessionInfoFromLocalStorage(): any {
|
||||
this.content = [];
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
describe('ProductDetailsComponent', () => {
|
||||
|
||||
@@ -70,7 +70,8 @@ describe('ProductListComponent', () => {
|
||||
last_modified: new Date(),
|
||||
manufacturer_id: 1,
|
||||
selling_rank: '1',
|
||||
category_id: 1
|
||||
category_id: 1,
|
||||
price: 0
|
||||
};
|
||||
|
||||
component.clickedProduct(product);
|
||||
|
||||
@@ -79,7 +79,7 @@ export class ProductListComponent implements OnInit {
|
||||
this.getPrices();
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
clickedProduct(product: Product): void {
|
||||
this.router.navigate([('/product/' + product.product_id)]);
|
||||
}
|
||||
|
||||
@@ -1,26 +0,0 @@
|
||||
.inf-content{
|
||||
border:1px solid #DDDDDD;
|
||||
-webkit-border-radius:10px;
|
||||
-moz-border-radius:10px;
|
||||
border-radius:10px;
|
||||
box-shadow: 7px 7px 7px rgba(0, 0, 0, 0.3);
|
||||
}
|
||||
|
||||
.header-in-page {
|
||||
padding-top: calc(1rem + 20px);
|
||||
padding-bottom: 1rem;
|
||||
}
|
||||
|
||||
table, th, td {
|
||||
border: 1px solid black;
|
||||
}
|
||||
|
||||
.delete:hover {
|
||||
cursor: pointer;
|
||||
color: #0d5a4b;
|
||||
}
|
||||
|
||||
.edit {
|
||||
width: 5%;
|
||||
height: 5%;
|
||||
}
|
||||
@@ -1,137 +0,0 @@
|
||||
<div class="container bootstrap snippets bootdey">
|
||||
<div class="panel-body inf-content">
|
||||
<div class="row">
|
||||
<div class="col-md-4">
|
||||
<img alt="" style="width:600px;" title="" class="img-circle img-thumbnail isTooltip" src="https://bootdey.com/img/Content/avatar/avatar7.png" data-original-title="Usuario">
|
||||
<ul title="Ratings" class="list-inline ratings text-center">
|
||||
<li><a href="#"><span class="glyphicon glyphicon-star"></span></a></li>
|
||||
<li><a href="#"><span class="glyphicon glyphicon-star"></span></a></li>
|
||||
<li><a href="#"><span class="glyphicon glyphicon-star"></span></a></li>
|
||||
<li><a href="#"><span class="glyphicon glyphicon-star"></span></a></li>
|
||||
<li><a href="#"><span class="glyphicon glyphicon-star"></span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<strong>Information</strong><br>
|
||||
<div class="table-responsive">
|
||||
<table class="table table-user-information">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
<strong>
|
||||
<span class="glyphicon glyphicon-bookmark text-primary"></span>
|
||||
Username
|
||||
</strong>
|
||||
</td>
|
||||
<td class="text-primary">
|
||||
{{currentUser.username}}
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
||||
<tr>
|
||||
<td>
|
||||
<strong>
|
||||
<span class="glyphicon glyphicon-eye-open text-primary"></span>
|
||||
Role
|
||||
</strong>
|
||||
</td>
|
||||
<td class="text-primary">
|
||||
User
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<strong>
|
||||
<span class="glyphicon glyphicon-envelope text-primary"></span>
|
||||
Email
|
||||
</strong>
|
||||
</td>
|
||||
<td class="text-primary">
|
||||
{{currentUser.email}}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<strong>
|
||||
<span class="glyphicon glyphicon-calendar text-primary"></span>
|
||||
created
|
||||
</strong>
|
||||
</td>
|
||||
<td class="text-primary">
|
||||
{{currentUser.registration_date}}
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<header class="header-in-page">
|
||||
|
||||
</header>
|
||||
<div class="container bootstrap snippets bootdey">
|
||||
<div class="col-auto">
|
||||
<table class="table table-hover">
|
||||
<tr>
|
||||
<th>Product</th>
|
||||
<th>Price</th>
|
||||
<th>Change</th>
|
||||
<th>Delete</th>
|
||||
</tr>
|
||||
<tr *ngFor="let alarm of alarms">
|
||||
<td>
|
||||
{{productsMap[alarm.product_id]?.name}}
|
||||
</td>
|
||||
<td>
|
||||
{{alarm.defined_price/100}}€
|
||||
</td>
|
||||
<td>
|
||||
<img class="delete" src="../assets/images/pencil.png">
|
||||
</td>
|
||||
<td>
|
||||
<img class="delete" src="../assets/images/Delete_icon-icons.com_55931.png" (click)="delete(alarm.alarm_id)">
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<!--
|
||||
<div class="container" *ngIf="currentUser; else loggedOut">
|
||||
<p>
|
||||
<strong>e-mail</strong>
|
||||
{{ currentUser.email}}
|
||||
</p>
|
||||
<p>
|
||||
<strong>username:</strong>
|
||||
{{ currentUser.username}}
|
||||
</p>
|
||||
<p>
|
||||
<strong>alarms</strong>
|
||||
{{alarms}}
|
||||
</p>
|
||||
<table>
|
||||
<tr>
|
||||
<th>Produkt</th>
|
||||
<th>Preis</th>
|
||||
</tr>
|
||||
<tr *ngFor="let alarm of alarms">
|
||||
<td>
|
||||
{{productsMap[alarm.product_id]?.name}}
|
||||
</td>
|
||||
<td>
|
||||
{{alarm.defined_price/100}}
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<p>
|
||||
<strong><a routerLink="/">zurück</a></strong>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<ng-template #loggedOut>
|
||||
Please login.
|
||||
</ng-template>
|
||||
-->
|
||||
@@ -1,25 +0,0 @@
|
||||
import { ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
|
||||
import { ProfileComponent } from './profile.component';
|
||||
|
||||
describe('ProfileComponent', () => {
|
||||
let component: ProfileComponent;
|
||||
let fixture: ComponentFixture<ProfileComponent>;
|
||||
|
||||
beforeEach(async () => {
|
||||
await TestBed.configureTestingModule({
|
||||
declarations: [ ProfileComponent ]
|
||||
})
|
||||
.compileComponents();
|
||||
});
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(ProfileComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
});
|
||||
@@ -1,63 +0,0 @@
|
||||
import {Component, OnInit} from '@angular/core';
|
||||
import {ApiService} from '../../services/api.service';
|
||||
|
||||
@Component({
|
||||
selector: 'app-profile',
|
||||
templateUrl: './profile.component.html',
|
||||
styleUrls: ['./profile.component.css']
|
||||
})
|
||||
export class ProfileComponent implements OnInit {
|
||||
|
||||
currentUser: any;
|
||||
obj: any;
|
||||
alarms: any [];
|
||||
productsMap: any = {};
|
||||
|
||||
constructor(private api: ApiService) {
|
||||
}
|
||||
|
||||
ngOnInit(): void {
|
||||
|
||||
this.api.getUserInfo().subscribe(
|
||||
user => {
|
||||
this.currentUser = user;
|
||||
console.log(this.currentUser);
|
||||
},
|
||||
);
|
||||
|
||||
this.getPriceAlarms();
|
||||
}
|
||||
|
||||
getPriceAlarms(): void {
|
||||
this.api.getPriceAlarms().subscribe(
|
||||
alarms => {
|
||||
this.alarms = alarms;
|
||||
this.getProductsByIds();
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
getProductsByIds(): void {
|
||||
const productIds: number [] = [];
|
||||
this.alarms.forEach(
|
||||
alarm => {
|
||||
productIds.push(alarm.product_id);
|
||||
}
|
||||
);
|
||||
this.api.getProductsByIds(productIds).subscribe(
|
||||
products => {
|
||||
products.forEach(
|
||||
product => {
|
||||
this.productsMap[product.product_id] = product;
|
||||
}
|
||||
);
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
delete(id: number): void {
|
||||
this.api.deletePriceAlarm(id).subscribe(
|
||||
res => window.location.reload()
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -1,25 +1,48 @@
|
||||
import { ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
import {ComponentFixture, TestBed} from '@angular/core/testing';
|
||||
|
||||
import { TopBarComponent } from './top-bar.component';
|
||||
import {TopBarComponent} from './top-bar.component';
|
||||
import {FormBuilder} from '@angular/forms';
|
||||
import {ApiService} from '../../services/api.service';
|
||||
import {Router} from '@angular/router';
|
||||
import {AbstractMockObservableService} from '../../mocks/mock.service';
|
||||
|
||||
class MockApiService extends AbstractMockObservableService {
|
||||
getUserInfo(): any {
|
||||
this.content = [];
|
||||
return this;
|
||||
}
|
||||
|
||||
getSessionInfoFromLocalStorage(): any {
|
||||
this.content = [];
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
describe('TopBarComponent', () => {
|
||||
let component: TopBarComponent;
|
||||
let fixture: ComponentFixture<TopBarComponent>;
|
||||
let component: TopBarComponent;
|
||||
let fixture: ComponentFixture<TopBarComponent>;
|
||||
let mockService;
|
||||
const router = {
|
||||
navigate: jasmine.createSpy('navigate'),
|
||||
routerState: jasmine.createSpy('routerState')
|
||||
};
|
||||
|
||||
beforeEach(async () => {
|
||||
await TestBed.configureTestingModule({
|
||||
declarations: [ TopBarComponent ]
|
||||
})
|
||||
.compileComponents();
|
||||
});
|
||||
beforeEach(async () => {
|
||||
mockService = new MockApiService();
|
||||
await TestBed.configureTestingModule({
|
||||
declarations: [TopBarComponent],
|
||||
providers: [{provide: ApiService, useValue: mockService}, {provide: Router, useValue: router}]
|
||||
})
|
||||
.compileComponents();
|
||||
});
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(TopBarComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(TopBarComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user