Skip to content

Commit e9cab6c

Browse files
committed
upgrade angular to 10 and add unit testing
1 parent b220e7c commit e9cab6c

File tree

11 files changed

+4159
-2781
lines changed

11 files changed

+4159
-2781
lines changed

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
11
# Changelog
22
All notable changes to this project will be documented in this file.
33

4+
## [1.0.0] - 2022-02-23
5+
### Added
6+
- Update to Angular 10
7+
- Added unit test to lib component
8+
49
## [0.2.3] - 2022-02-19
510
### Added
611
- Add forRoot default configuration for component

package-lock.json

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

package.json

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"name": "ng-toggle-button",
33
"description": "A toggle button component",
44
"author": "vicmans",
5-
"version": "0.2.3",
5+
"version": "1.0.0",
66
"homepage": "https://github.com/vicmans/ng-toggle-button#readme",
77
"repository": {
88
"type": "git",
@@ -33,39 +33,39 @@
3333
},
3434
"private": false,
3535
"dependencies": {
36-
"@angular/animations": "^9.0.4",
37-
"@angular/common": "^9.0.4",
38-
"@angular/compiler": "^9.0.4",
39-
"@angular/core": "^9.0.4",
40-
"@angular/forms": "^9.0.4",
41-
"@angular/platform-browser": "^9.0.4",
42-
"@angular/platform-browser-dynamic": "^9.0.4",
43-
"@angular/router": "^9.0.4",
36+
"@angular/animations": "^10.2.5",
37+
"@angular/common": "^10.2.5",
38+
"@angular/compiler": "^10.2.5",
39+
"@angular/core": "^10.2.5",
40+
"@angular/forms": "^10.2.5",
41+
"@angular/platform-browser": "^10.2.5",
42+
"@angular/platform-browser-dynamic": "^10.2.5",
43+
"@angular/router": "^10.2.5",
4444
"rxjs": "~6.5.5",
45-
"tslib": "^1.10.0",
45+
"tslib": "^2.0.0",
4646
"zone.js": "~0.10.2"
4747
},
4848
"devDependencies": {
49-
"@angular-devkit/build-angular": "~0.901.15",
50-
"@angular-devkit/build-ng-packagr": "~0.901.15",
51-
"@angular/cli": "^9.0.4",
52-
"@angular/compiler-cli": "^9.0.4",
53-
"@angular/language-service": "~9.0.4",
49+
"@angular-devkit/build-angular": "~0.1002.4",
50+
"@angular-devkit/build-ng-packagr": "~0.1002.4",
51+
"@angular/cli": "^10.2.4",
52+
"@angular/compiler-cli": "^10.2.5",
53+
"@angular/language-service": "~10.2.5",
5454
"@types/jasmine": "~3.3.8",
5555
"@types/jasminewd2": "~2.0.3",
5656
"@types/node": "^12.11.1",
5757
"codelyzer": "^5.0.0",
58-
"jasmine-core": "^3.5.0",
59-
"jasmine-spec-reporter": "~4.2.1",
60-
"karma": "^6.3.14",
61-
"karma-chrome-launcher": "~2.2.0",
62-
"karma-coverage-istanbul-reporter": "~2.0.1",
63-
"karma-jasmine": "~2.0.1",
64-
"karma-jasmine-html-reporter": "^1.4.0",
65-
"ng-packagr": "^10.1.1",
66-
"protractor": "^5.4.3",
58+
"jasmine-core": "~3.5.0",
59+
"jasmine-spec-reporter": "~5.0.0",
60+
"karma": "~5.0.0",
61+
"karma-chrome-launcher": "~3.1.0",
62+
"karma-coverage-istanbul-reporter": "~3.0.2",
63+
"karma-jasmine": "~4.0.0",
64+
"karma-jasmine-html-reporter": "^1.5.0",
65+
"ng-packagr": "^10.1.0",
66+
"protractor": "~7.0.0",
6767
"ts-node": "~8.3.0",
68-
"tslint": "^5.7.0",
69-
"typescript": "3.8.3"
68+
"tslint": "~6.1.0",
69+
"typescript": "4.0.8"
7070
}
7171
}
File renamed without changes.

projects/demo/e2e/tsconfig.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
"compilerOptions": {
44
"outDir": "../../../out-tsc/e2e",
55
"module": "commonjs",
6-
"target": "es5",
6+
"target": "es2018",
77
"types": [
88
"jasmine",
99
"jasminewd2",
Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,31 @@
1-
import { TestBed, async } from '@angular/core/testing';
1+
import { TestBed } from '@angular/core/testing';
22
import { AppComponent } from './app.component';
33

44
describe('AppComponent', () => {
5-
beforeEach(async(() => {
6-
TestBed.configureTestingModule({
5+
beforeEach(async () => {
6+
await TestBed.configureTestingModule({
77
declarations: [
88
AppComponent
99
],
1010
}).compileComponents();
11-
}));
11+
});
1212

1313
it('should create the app', () => {
1414
const fixture = TestBed.createComponent(AppComponent);
1515
const app = fixture.debugElement.componentInstance;
1616
expect(app).toBeTruthy();
1717
});
1818

19-
it(`should have as title 'angular-toogle-button'`, () => {
19+
it(`should have as title 'ng-toggle-button'`, () => {
2020
const fixture = TestBed.createComponent(AppComponent);
2121
const app = fixture.debugElement.componentInstance;
22-
expect(app.title).toEqual('angular-toogle-button');
22+
expect(app.title).toEqual('ng-toggle-button');
2323
});
2424

2525
it('should render title in a h1 tag', () => {
2626
const fixture = TestBed.createComponent(AppComponent);
2727
fixture.detectChanges();
2828
const compiled = fixture.debugElement.nativeElement;
29-
expect(compiled.querySelector('h1').textContent).toContain('Welcome to angular-toogle-button!');
29+
expect(compiled.querySelector('h1').textContent).toContain('ng-toggle-button');
3030
});
3131
});

projects/ng-toggle/package.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "ng-toggle-button",
3-
"version": "0.2.3",
3+
"version": "1.0.0",
44
"description": "Angular toggle button switch",
55
"author": "vicmans",
66
"license": "MIT",
@@ -20,6 +20,9 @@
2020
"switch",
2121
"ui"
2222
],
23+
"dependencies": {
24+
"tslib": "^2.0.0"
25+
},
2326
"peerDependencies": {
2427
"@angular/common": ">=9.0.0",
2528
"@angular/core": ">=9.0.0"
Lines changed: 82 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,20 @@
1-
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
1+
import { ComponentFixture, TestBed } from '@angular/core/testing';
22

33
import { NgToggleComponent } from './ng-toggle.component';
4+
import { NgToggleConfig } from './ng-toggle.config';
5+
import { NgToggleModule } from './ng-toggle.module';
46

57
describe('NgToggleComponent', () => {
68
let component: NgToggleComponent;
79
let fixture: ComponentFixture<NgToggleComponent>;
810

9-
beforeEach(async(() => {
10-
TestBed.configureTestingModule({
11-
declarations: [ NgToggleComponent ]
11+
beforeEach(async () => {
12+
await TestBed.configureTestingModule({
13+
declarations: [NgToggleComponent],
14+
providers: [NgToggleConfig]
1215
})
1316
.compileComponents();
14-
}));
17+
});
1518

1619
beforeEach(() => {
1720
fixture = TestBed.createComponent(NgToggleComponent);
@@ -22,4 +25,78 @@ describe('NgToggleComponent', () => {
2225
it('should create', () => {
2326
expect(component).toBeTruthy();
2427
});
28+
29+
it('should have default values', () => {
30+
expect(component.value).toBeTruthy();
31+
expect(component.width).toBe(45);
32+
expect(component.height).toBe(25);
33+
expect(component.margin).toBe(2);
34+
expect(component.speed).toBe(300);
35+
});
36+
37+
it('should change the value when click', () => {
38+
let label = fixture.debugElement.nativeElement.querySelector('label');
39+
label.click();
40+
fixture.detectChanges();
41+
42+
expect(component.value).toBeFalsy();
43+
})
2544
});
45+
46+
describe('NgToggleComponent with values forRoot module imports', () => {
47+
let component: NgToggleComponent;
48+
let fixture: ComponentFixture<NgToggleComponent>;
49+
50+
beforeEach(async () => {
51+
await TestBed.configureTestingModule({
52+
imports: [NgToggleModule.forRoot({
53+
values: {
54+
checked: 'yes',
55+
unchecked: 'no'
56+
},
57+
color: {
58+
checked: 'green',
59+
unchecked: '#fbfafc'
60+
},
61+
labels: {
62+
checked: 'si',
63+
unchecked: 'no'
64+
}
65+
})]
66+
})
67+
.compileComponents();
68+
});
69+
70+
beforeEach(() => {
71+
fixture = TestBed.createComponent(NgToggleComponent);
72+
component = fixture.componentInstance;
73+
fixture.detectChanges();
74+
});
75+
76+
it('should create component', () => {
77+
expect(component).toBeTruthy();
78+
});
79+
80+
it('should have config values', () => {
81+
expect(component.values.checked).toEqual('yes');
82+
expect(component.values.unchecked).toEqual('no');
83+
84+
expect(component.labels).toEqual({
85+
checked: 'si',
86+
unchecked: 'no'
87+
});
88+
89+
expect(component.color).toEqual({
90+
checked: 'green',
91+
unchecked: '#fbfafc'
92+
});
93+
});
94+
95+
it('should have checked when clicked', () => {
96+
let label = fixture.debugElement.nativeElement.querySelector('label');
97+
label.click();
98+
fixture.detectChanges();
99+
100+
expect(component.value).toBe('yes');
101+
});
102+
});

projects/ng-toggle/src/lib/ng-toggle.config.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
import { toggleConfig, valueConfig } from "./ng-toggle.component";
2+
import { Injectable } from "@angular/core";
23

4+
@Injectable()
35
export class NgToggleConfig {
46
value?: any;
57
name?: string;

tsconfig.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
"outDir": "./dist/out-tsc",
66
"sourceMap": true,
77
"declaration": false,
8-
"module": "esnext",
8+
"module": "es2020",
99
"moduleResolution": "node",
1010
"emitDecoratorMetadata": true,
1111
"experimentalDecorators": true,

0 commit comments

Comments
 (0)