forked from Silverfish/proton-bridge
fix(GODT-3187): Fix numberOfDay computation when changing year.
This commit is contained in:
@ -53,9 +53,9 @@ func numberOfDay(now, prev time.Time) int {
|
|||||||
}
|
}
|
||||||
if now.Year() > prev.Year() {
|
if now.Year() > prev.Year() {
|
||||||
if now.YearDay() > prev.YearDay() {
|
if now.YearDay() > prev.YearDay() {
|
||||||
return 365 + (now.YearDay() - prev.YearDay())
|
return 365 + (now.YearDay() - prev.YearDay()) + (365 * (now.Year() - prev.Year() - 1))
|
||||||
}
|
}
|
||||||
return (prev.YearDay() + now.YearDay()) - 365
|
return (365 - prev.YearDay()) + now.YearDay() + (365 * (now.Year() - prev.Year() - 1))
|
||||||
} else if now.YearDay() > prev.YearDay() {
|
} else if now.YearDay() > prev.YearDay() {
|
||||||
return now.YearDay() - prev.YearDay()
|
return now.YearDay() - prev.YearDay()
|
||||||
}
|
}
|
||||||
|
|||||||
@ -69,3 +69,61 @@ func TestConfigurationProgress_fed(t *testing.T) {
|
|||||||
require.Equal(t, 5, req.Values.NbDay)
|
require.Equal(t, 5, req.Values.NbDay)
|
||||||
require.Equal(t, 2, req.Values.NbDaySinceLast)
|
require.Equal(t, 2, req.Values.NbDaySinceLast)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestConfigurationProgress_fed_year_change(t *testing.T) {
|
||||||
|
dir := t.TempDir()
|
||||||
|
file := filepath.Join(dir, "dummy.json")
|
||||||
|
var data = configstatus.ConfigurationStatusData{
|
||||||
|
Metadata: configstatus.Metadata{Version: "1.0.0"},
|
||||||
|
DataV1: configstatus.DataV1{
|
||||||
|
PendingSince: time.Now().AddDate(-1, 0, -5),
|
||||||
|
LastProgress: time.Now().AddDate(0, 0, -2),
|
||||||
|
Autoconf: "Mr TBird",
|
||||||
|
ClickedLink: 42,
|
||||||
|
ReportSent: false,
|
||||||
|
ReportClick: true,
|
||||||
|
FailureDetails: "Not an error",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
require.NoError(t, dumpConfigStatusInFile(&data, file))
|
||||||
|
|
||||||
|
config, err := configstatus.LoadConfigurationStatus(file)
|
||||||
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
var builder = configstatus.ConfigProgressBuilder{}
|
||||||
|
req := builder.New(config)
|
||||||
|
|
||||||
|
require.Equal(t, "bridge.any.configuration", req.MeasurementGroup)
|
||||||
|
require.Equal(t, "bridge_config_progress", req.Event)
|
||||||
|
require.Equal(t, 370, req.Values.NbDay)
|
||||||
|
require.Equal(t, 2, req.Values.NbDaySinceLast)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestConfigurationProgress_fed_day_higher(t *testing.T) {
|
||||||
|
dir := t.TempDir()
|
||||||
|
file := filepath.Join(dir, "dummy.json")
|
||||||
|
var data = configstatus.ConfigurationStatusData{
|
||||||
|
Metadata: configstatus.Metadata{Version: "1.0.0"},
|
||||||
|
DataV1: configstatus.DataV1{
|
||||||
|
PendingSince: time.Now().AddDate(-1, 0, -5),
|
||||||
|
LastProgress: time.Now().AddDate(0, 0, -2),
|
||||||
|
Autoconf: "Mr TBird",
|
||||||
|
ClickedLink: 42,
|
||||||
|
ReportSent: false,
|
||||||
|
ReportClick: true,
|
||||||
|
FailureDetails: "Not an error",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
require.NoError(t, dumpConfigStatusInFile(&data, file))
|
||||||
|
|
||||||
|
config, err := configstatus.LoadConfigurationStatus(file)
|
||||||
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
var builder = configstatus.ConfigProgressBuilder{}
|
||||||
|
req := builder.New(config)
|
||||||
|
|
||||||
|
require.Equal(t, "bridge.any.configuration", req.MeasurementGroup)
|
||||||
|
require.Equal(t, "bridge_config_progress", req.Event)
|
||||||
|
require.Equal(t, 370, req.Values.NbDay)
|
||||||
|
require.Equal(t, 2, req.Values.NbDaySinceLast)
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user