feat(GODT-2555): add local telemetry settings.

feat(GODT-2555): add 'TelemetryDisabled' settings to vault.
feat(GODT-2555): CLI and GUI implementation.
feat(GODT-2555): implemented setting in bridge-gui-tester.
feat(GODT-2555): added unit tests.
feat(GODT-2555): feature tests.
This commit is contained in:
Xavier Michelon
2023-04-18 11:10:16 +02:00
parent c000ee8a3c
commit f4631c4bc9
29 changed files with 1700 additions and 1039 deletions

View File

@ -144,6 +144,8 @@ func TestFeatures(testingT *testing.T) {
ctx.Step(`^the user reports a bug$`, s.theUserReportsABug)
ctx.Step(`^the user hides All Mail$`, s.theUserHidesAllMail)
ctx.Step(`^the user shows All Mail$`, s.theUserShowsAllMail)
ctx.Step(`^the user disables telemetry in bridge settings$`, s.theUserDisablesTelemetryInBridgeSettings)
ctx.Step(`^the user enables telemetry in bridge settings$`, s.theUserEnablesTelemetryInBridgeSettings)
ctx.Step(`^bridge sends a connection up event$`, s.bridgeSendsAConnectionUpEvent)
ctx.Step(`^bridge sends a connection down event$`, s.bridgeSendsAConnectionDownEvent)
ctx.Step(`^bridge sends a deauth event for user "([^"]*)"$`, s.bridgeSendsADeauthEventForUser)

View File

@ -310,6 +310,14 @@ func (s *scenario) theUserShowsAllMail() error {
return s.t.bridge.SetShowAllMail(true)
}
func (s *scenario) theUserDisablesTelemetryInBridgeSettings() error {
return s.t.bridge.SetTelemetryDisabled(true)
}
func (s *scenario) theUserEnablesTelemetryInBridgeSettings() error {
return s.t.bridge.SetTelemetryDisabled(false)
}
func (s *scenario) networkPortIsBusy(port int) {
if listener, err := net.Listen("tcp", "127.0.0.1:"+strconv.Itoa(port)); err == nil { // we ignore errors. Most likely port is already busy.
s.t.dummyListeners = append(s.t.dummyListeners, listener)

View File

@ -7,6 +7,12 @@ Feature: Bridge send usage metrics
Scenario: Telemetry availability - No user
Then bridge telemetry feature is enabled
When the user disables telemetry in bridge settings
Then bridge telemetry feature is disabled
When the user enables telemetry in bridge settings
Then bridge telemetry feature is enabled
Scenario: Telemetry availability - Multi user
When the user logs in with username "[user:user1]" and password "password"
@ -16,3 +22,9 @@ Feature: Bridge send usage metrics
And user "[user:user2]" finishes syncing
When user "[user:user2]" has telemetry set to 0
Then bridge telemetry feature is disabled
When user "[user:user2]" has telemetry set to 1
Then bridge telemetry feature is enabled
When the user disables telemetry in bridge settings
Then bridge telemetry feature is disabled
When the user enables telemetry in bridge settings
Then bridge telemetry feature is enabled