Skip to content
This repository was archived by the owner on May 14, 2025. It is now read-only.

Commit 4f164fc

Browse files
ghillertBoykoAlex
authored andcommitted
gh-581 List skipper feature-toggle info in the about tab
1 parent 59631f5 commit 4f164fc

File tree

6 files changed

+28
-5
lines changed

6 files changed

+28
-5
lines changed

ui/src/app/about/about-details.component.html

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,13 @@ <h2>Enabled Features</h2>
4040
<span *ngIf="!dataflowVersionInfo.featureInfo.tasksEnabled" class="glyphicon glyphicon-remove text-danger" aria-label="false" id="tasksDisabled"></span>
4141
</td>
4242
</tr>
43+
<tr>
44+
<td class="col-xs-6">Skipper Mode</td>
45+
<td>
46+
<span *ngIf="dataflowVersionInfo.featureInfo.skipperEnabled" class="glyphicon glyphicon-ok text-success" aria-label="true" id="skipperEnabled"></span>
47+
<span *ngIf="!dataflowVersionInfo.featureInfo.skipperEnabled" class="glyphicon glyphicon-remove text-danger" aria-label="false" id="skipperDisabled"></span>
48+
</td>
49+
</tr>
4350
</tbody>
4451
</table>
4552

ui/src/app/about/about-details.component.spec.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -58,8 +58,8 @@ describe('AboutDetailsComponent', () => {
5858
validateColumnValues('dataFlowVersionTable', ['FOO', 'BAR'], 1);
5959

6060
// Verify Enabled Features
61-
validateColumnValues('enabledFeaturesTable', ['Analytics', 'Streams', 'Tasks'], 0);
62-
validateSpansExists(['analyticsEnabled', 'streamsEnabled', 'streamsEnabled']);
61+
validateColumnValues('enabledFeaturesTable', ['Analytics', 'Streams', 'Tasks', 'Skipper Mode'], 0);
62+
validateSpansExists(['analyticsEnabled', 'streamsEnabled', 'tasksEnabled', 'skipperEnabled']);
6363

6464
// Verify Security Information
6565
validateColumnValues('securityInformationTable', ['Authentication', 'Authorization',
@@ -105,8 +105,8 @@ describe('AboutDetailsComponent', () => {
105105
expect(component).toBeTruthy();
106106

107107
// Verify Enabled Features
108-
validateColumnValues('enabledFeaturesTable', ['Analytics', 'Streams', 'Tasks'], 0);
109-
validateSpansExists(['analyticsDisabled', 'streamsDisabled', 'streamsDisabled']);
108+
validateColumnValues('enabledFeaturesTable', ['Analytics', 'Streams', 'Tasks', 'Skipper Mode'], 0);
109+
validateSpansExists(['analyticsDisabled', 'streamsDisabled', 'tasksDisabled', 'skipperDisabled']);
110110

111111
// Verify Security Information
112112
validateColumnValues('securityInformationTable', ['Authentication', 'Authorization',

ui/src/app/about/about.service.spec.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@ describe('AboutService', () => {
1111
{
1212
'analyticsEnabled': true,
1313
'streamsEnabled': true,
14-
'tasksEnabled': true
14+
'tasksEnabled': true,
15+
'skipperEnabled': true
1516
},
1617
'versionInfo':
1718
{

ui/src/app/shared/model/about/feature-info.model.spec.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,20 +24,24 @@ describe('FeatureInfo', () => {
2424
expect(featureInfo.analyticsEnabled).toBe(false);
2525
expect(featureInfo.streamsEnabled).toBe(false);
2626
expect(featureInfo.tasksEnabled).toBe(false);
27+
expect(featureInfo.skipperEnabled).toBe(false);
2728

2829
featureInfo.analyticsEnabled = true;
2930
featureInfo.streamsEnabled = true;
3031
featureInfo.tasksEnabled = true;
32+
featureInfo.skipperEnabled = true;
3133

3234
expect(featureInfo.analyticsEnabled).toBe(true);
3335
expect(featureInfo.streamsEnabled).toBe(true);
3436
expect(featureInfo.tasksEnabled).toBe(true);
37+
expect(featureInfo.skipperEnabled).toBe(true);
3538

3639
featureInfo.reset();
3740

3841
expect(featureInfo.analyticsEnabled).toBe(false);
3942
expect(featureInfo.streamsEnabled).toBe(false);
4043
expect(featureInfo.tasksEnabled).toBe(false);
44+
expect(featureInfo.skipperEnabled).toBe(false);
4145
});
4246
});
4347
describe('isFeatureEnabled', () => {
@@ -47,16 +51,19 @@ describe('FeatureInfo', () => {
4751
featureInfo.analyticsEnabled = true;
4852
featureInfo.streamsEnabled = true;
4953
featureInfo.tasksEnabled = true;
54+
featureInfo.skipperEnabled = true;
5055

5156
expect(featureInfo.isFeatureEnabled('analyticsEnabled')).toBe(true);
5257
expect(featureInfo.isFeatureEnabled('streamsEnabled')).toBe(true);
5358
expect(featureInfo.isFeatureEnabled('tasksEnabled')).toBe(true);
59+
expect(featureInfo.isFeatureEnabled('skipperEnabled')).toBe(true);
5460
});
5561
it('should show that the standard features are disabled by default', () => {
5662
const featureInfo = new FeatureInfo();
5763
expect(featureInfo.isFeatureEnabled('analyticsEnabled')).toBe(false);
5864
expect(featureInfo.isFeatureEnabled('streamsEnabled')).toBe(false);
5965
expect(featureInfo.isFeatureEnabled('tasksEnabled')).toBe(false);
66+
expect(featureInfo.isFeatureEnabled('skipperEnabled')).toBe(false);
6067
});
6168
it('should show that unsupported features return false', () => {
6269
const featureInfo = new FeatureInfo();

ui/src/app/shared/model/about/feature-info.model.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ export class FeatureInfo implements Serializable<FeatureInfo> {
1010
public analyticsEnabled = false;
1111
public streamsEnabled = false;
1212
public tasksEnabled = false;
13+
public skipperEnabled = false;
1314

1415
/**
1516
* Set the FeatureInfo object to default values.
@@ -18,12 +19,14 @@ export class FeatureInfo implements Serializable<FeatureInfo> {
1819
this.analyticsEnabled = false;
1920
this.streamsEnabled = false;
2021
this.tasksEnabled = false;
22+
this.skipperEnabled = false;
2123
}
2224

2325
public deserialize(input) {
2426
this.analyticsEnabled = input.analyticsEnabled;
2527
this.streamsEnabled = input.streamsEnabled;
2628
this.tasksEnabled = input.tasksEnabled;
29+
this.skipperEnabled = input.skipperEnabled;
2730
return this;
2831
}
2932

@@ -45,6 +48,9 @@ export class FeatureInfo implements Serializable<FeatureInfo> {
4548
case 'tasksEnabled': {
4649
return this.tasksEnabled;
4750
}
51+
case 'skipperEnabled': {
52+
return this.skipperEnabled;
53+
}
4854
default: {
4955
console.error(`Unsupported feature parameter '${feature}'.`);
5056
return false;

ui/src/app/tests/mocks/about.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,7 @@ export class DataflowVersionInfo {
105105
this.featureInfo.analyticsEnabled = true;
106106
this.featureInfo.streamsEnabled = true;
107107
this.featureInfo.tasksEnabled = true;
108+
this.featureInfo.skipperEnabled = true;
108109
}
109110
}
110111

@@ -162,6 +163,7 @@ export class MockAboutService {
162163
dataFlowVersion.featureInfo.analyticsEnabled = false;
163164
dataFlowVersion.featureInfo.streamsEnabled = false;
164165
dataFlowVersion.featureInfo.tasksEnabled = false;
166+
dataFlowVersion.featureInfo.skipperEnabled = false;
165167
}
166168
if (!this.isPlatformSpecificInformationAvailable) {
167169
dataFlowVersion.runtimeEnvironment.taskLauncher.platformSpecificInfo = {};

0 commit comments

Comments
 (0)