Skip to content

Commit 2df6f3f

Browse files
committed
Layout optimization and test fix
1 parent 42c4f12 commit 2df6f3f

File tree

8 files changed

+49
-55
lines changed

8 files changed

+49
-55
lines changed

angular.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,8 @@
122122
"options": {
123123
"main": "projects/openapi-viewer/src/test.ts",
124124
"tsConfig": "projects/openapi-viewer/tsconfig.spec.json",
125-
"karmaConfig": "projects/openapi-viewer/karma.conf.js"
125+
"karmaConfig": "projects/openapi-viewer/karma.conf.js",
126+
"codeCoverage": true
126127
}
127128
},
128129
"lint": {

karma.conf.js

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,12 @@ module.exports = function(config) {
2727
autoWatch: true,
2828
browsers: ['Chrome'],
2929
singleRun: false,
30-
restartOnFileChange: true
30+
restartOnFileChange: true,
31+
customLaunchers: {
32+
ChromeHeadlessCI: {
33+
base: 'ChromeHeadless',
34+
flags: ['--no-sandbox']
35+
}
36+
}
3137
});
3238
};

package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
"start": "ng serve",
99
"build": "ng build",
1010
"test": "ng test",
11+
"test:lib": "ng test openapi-viewer",
12+
"test:lib:ci": "ng test openapi-viewer --watch=false --no-progress --browsers=ChromeHeadlessCI",
1113
"lint": "ng lint",
1214
"e2e": "ng e2e"
1315
},

projects/openapi-viewer/karma.conf.js

Lines changed: 2 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -2,31 +2,12 @@
22
// https://karma-runner.github.io/1.0/config/configuration-file.html
33

44
module.exports = function(config) {
5+
require('../../karma.conf')(config);
56
config.set({
6-
basePath: '',
7-
frameworks: ['jasmine', '@angular-devkit/build-angular'],
8-
plugins: [
9-
require('karma-jasmine'),
10-
require('karma-chrome-launcher'),
11-
require('karma-jasmine-html-reporter'),
12-
require('karma-coverage-istanbul-reporter'),
13-
require('@angular-devkit/build-angular/plugins/karma')
14-
],
15-
client: {
16-
clearContext: false // leave Jasmine Spec Runner output visible in browser
17-
},
187
coverageIstanbulReporter: {
198
dir: require('path').join(__dirname, '../../coverage/openapi-viewer'),
209
reports: ['html', 'lcovonly'],
2110
fixWebpackSourcePaths: true
22-
},
23-
reporters: ['progress', 'kjhtml'],
24-
port: 9876,
25-
colors: true,
26-
logLevel: config.LOG_INFO,
27-
autoWatch: true,
28-
browsers: ['Chrome'],
29-
singleRun: false,
30-
restartOnFileChange: true
11+
}
3112
});
3213
};

projects/openapi-viewer/src/lib/method-header/method-header.component.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<h3 (click)="toggleOpen()" class="oav-method-header">
1+
<h3 (click)="toggleOpen()" [className]="'oav-method-header oav-method-bg method-' + method.toLowerCase()">
22
<a routerLink [fragment]="fragment" class="mainlink" (click)="toggleOpen(); $event.stopPropagation()">
33
<span [className]="'method method-' + method.toLowerCase()">{{ method.toUpperCase() }}</span>
44
<span class="path">{{ path }}</span>

projects/openapi-viewer/src/lib/openapi-viewer.scss

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,14 @@ $method-colors: (
5050
}
5151
}
5252

53+
.oav-method-bg {
54+
@each $method, $color in $method-colors {
55+
&.method-#{$method} {
56+
background-color: rgba($color, 0.1);
57+
}
58+
}
59+
}
60+
5361
oav-method-header {
5462
h3 {
5563
cursor: pointer;
@@ -103,15 +111,8 @@ oav-method-header {
103111
}
104112

105113
.openapi-operation {
106-
background: #f1f1f1;
107114
margin: 0.5rem 0;
108115

109-
@each $method, $color in $method-colors {
110-
&.method-#{$method} {
111-
background-color: rgba($color, 0.1);
112-
}
113-
}
114-
115116
.oav-operation-details {
116117
display: none;
117118
}
@@ -130,6 +131,7 @@ oav-method-header {
130131
}
131132

132133
.oav-operation-details {
134+
margin: 0.5rem 0;
133135
padding: 0 2rem;
134136

135137
.send-btn {
@@ -158,7 +160,7 @@ oav-method-header {
158160

159161
.oav-operation-layout {
160162
display: flex;
161-
.openapi-operation {
163+
.oav-operation-details {
162164
flex: 1;
163165
}
164166
.oav-operation-requests {
Lines changed: 24 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<div class="oav-operation-layout">
1+
<div>
22
<div
33
[className]="'openapi-operation method-' + operationItem.method"
44
[class.deprecated]="operation.deprecated"
@@ -15,31 +15,32 @@
1515
{{ operation.summary }}
1616
</oav-method-header>
1717

18-
<div class="oav-operation-details">
19-
<p *ngIf="operationItem.operation.description">
20-
{{ operationItem.operation.description }}
21-
</p>
18+
<div class="oav-operation-layout">
19+
<div [className]="'oav-operation-details oav-method-bg method-' + operationItem.method">
20+
<p *ngIf="operationItem.operation.description">
21+
{{ operationItem.operation.description }}
22+
</p>
2223

23-
<form (submit)="send()" [formGroup]="formGroup">
24-
<ng-container *ngIf="operationItem.parameters?.length">
25-
<h4>Parameters</h4>
26-
<oav-parameter *ngFor="let param of operationItem.parameters" [parameter]="param" [formGroup]="formGroup"></oav-parameter>
27-
</ng-container>
28-
<button class="send-btn" [disabled]="formGroup.invalid">Send request</button>
29-
</form>
24+
<form (submit)="send()" [formGroup]="formGroup">
25+
<ng-container *ngIf="operationItem.parameters?.length">
26+
<h4>Parameters</h4>
27+
<oav-parameter *ngFor="let param of operationItem.parameters" [parameter]="param" [formGroup]="formGroup"></oav-parameter>
28+
</ng-container>
29+
<button class="send-btn" [disabled]="formGroup.invalid">Send request</button>
30+
</form>
3031

31-
<h4 class="oav-divided-container toggle-button left" oavOpenable #openable="openable">
32-
<span class="main">Responses</span>
33-
<select class="response-type-select" name="responseType" [(ngModel)]="responseType" (click)="$event.stopPropagation()">
34-
<option *ngFor="let resType of operationItem.responseTypes" [value]="resType">{{ resType }}</option>
35-
</select>
36-
</h4>
32+
<h4 class="oav-divided-container toggle-button left" oavOpenable #openable="openable">
33+
<span class="main">Responses</span>
34+
<select class="response-type-select" name="responseType" [(ngModel)]="responseType" (click)="$event.stopPropagation()">
35+
<option *ngFor="let resType of operationItem.responseTypes" [value]="resType">{{ resType }}</option>
36+
</select>
37+
</h4>
3738

38-
<oav-responses [responses]="operationItem.responses" [responseType]="responseType" [hidden]="!openable.open"></oav-responses>
39+
<oav-responses [responses]="operationItem.responses" [responseType]="responseType" [hidden]="!openable.open"></oav-responses>
40+
</div>
41+
<div class="oav-operation-requests" [hidden]="!requests.length">
42+
<oav-requests-list [requests]="requests"></oav-requests-list>
43+
</div>
3944
</div>
4045
</div>
41-
42-
<div class="oav-operation-requests" [hidden]="!requests.length">
43-
<oav-requests-list [requests]="requests"></oav-requests-list>
44-
</div>
4546
</div>

projects/openapi-viewer/src/lib/util/data-generator.util.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ const formatExamples = {
99
string_email: () => '[email protected]',
1010
'string_date-time': () => formatExampleDate.toISOString(),
1111
string_date: () => formatExampleDate.toISOString().substring(0, 10),
12+
string_time: () => formatExampleDate.toISOString().substring(11),
1213
string_uuid: () => '3fa85f64-5717-4562-b3fc-2c963f66afa6',
1314
string_hostname: () => 'example.com',
1415
string_ipv4: () => '198.51.100.42',

0 commit comments

Comments
 (0)