Skip to content

Commit b4f805b

Browse files
committed
win32: updated settings view and layout
1 parent 95b63b8 commit b4f805b

10 files changed

Lines changed: 147 additions & 180 deletions

internal/config/cities.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@ import (
55
"fmt"
66
)
77

8-
// AddCity appends a city to the list. Returns an error if the list already has 3 cities.
8+
// AddCity appends a city to the list. Returns an error if the list already has 5 cities.
99
func AddCity(cities []CityConfig, city CityConfig) ([]CityConfig, error) {
10-
if len(cities) >= 3 {
11-
return cities, errors.New("maximum of 3 cities reached")
10+
if len(cities) >= 5 {
11+
return cities, errors.New("maximum of 5 cities reached")
1212
}
1313
return append(cities, city), nil
1414
}

internal/config/cities_property_test.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@ import (
1111

1212
func TestProperty4_CityListAddPreservesExistingAndAppends(t *testing.T) {
1313
rapid.Check(t, func(rt *rapid.T) {
14-
// Generate a list of 1-2 cities
15-
count := rapid.IntRange(1, 2).Draw(rt, "cityCount")
14+
// Generate a list of 1-4 cities
15+
count := rapid.IntRange(1, 4).Draw(rt, "cityCount")
1616
cities := make([]CityConfig, count)
1717
for i := range cities {
1818
cities[i] = genCityConfig(rt, "existing"+string(rune('0'+i)))
@@ -51,8 +51,8 @@ func TestProperty4_CityListAddPreservesExistingAndAppends(t *testing.T) {
5151

5252
func TestProperty5_CityListRemoveDecreasesLengthAndExcludesTarget(t *testing.T) {
5353
rapid.Check(t, func(rt *rapid.T) {
54-
// Generate a list of 2-3 cities
55-
count := rapid.IntRange(2, 3).Draw(rt, "cityCount")
54+
// Generate a list of 2-5 cities
55+
count := rapid.IntRange(2, 5).Draw(rt, "cityCount")
5656
cities := make([]CityConfig, count)
5757
for i := range cities {
5858
cities[i] = genCityConfig(rt, "city"+string(rune('0'+i)))
@@ -87,8 +87,8 @@ func TestProperty5_CityListRemoveDecreasesLengthAndExcludesTarget(t *testing.T)
8787

8888
func TestProperty6_CityListReorderPreservesSet(t *testing.T) {
8989
rapid.Check(t, func(rt *rapid.T) {
90-
// Generate a list of 1-3 cities
91-
count := rapid.IntRange(1, 3).Draw(rt, "cityCount")
90+
// Generate a list of 1-5 cities
91+
count := rapid.IntRange(1, 5).Draw(rt, "cityCount")
9292
cities := make([]CityConfig, count)
9393
for i := range cities {
9494
cities[i] = genCityConfig(rt, "city"+string(rune('0'+i)))

internal/config/cities_test.go

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -28,24 +28,24 @@ func TestAddCity_AppendsToList(t *testing.T) {
2828
}
2929

3030
func TestAddCity_RejectsWhenFull(t *testing.T) {
31-
cities := []CityConfig{city("A", "R1"), city("B", "R2"), city("C", "R3")}
32-
_, err := AddCity(cities, city("D", "R4"))
31+
cities := []CityConfig{city("A", "R1"), city("B", "R2"), city("C", "R3"), city("D", "R4"), city("E", "R5")}
32+
_, err := AddCity(cities, city("F", "R6"))
3333
if err == nil {
3434
t.Fatal("expected error when adding to full list")
3535
}
36-
if err.Error() != "maximum of 3 cities reached" {
36+
if err.Error() != "maximum of 5 cities reached" {
3737
t.Errorf("unexpected error message: %v", err)
3838
}
3939
}
4040

41-
func TestAddCity_AllowsUpToThree(t *testing.T) {
42-
cities := []CityConfig{city("A", "R1"), city("B", "R2")}
43-
result, err := AddCity(cities, city("C", "R3"))
41+
func TestAddCity_AllowsUpToFive(t *testing.T) {
42+
cities := []CityConfig{city("A", "R1"), city("B", "R2"), city("C", "R3"), city("D", "R4")}
43+
result, err := AddCity(cities, city("E", "R5"))
4444
if err != nil {
4545
t.Fatalf("unexpected error: %v", err)
4646
}
47-
if len(result) != 3 {
48-
t.Fatalf("expected length 3, got %d", len(result))
47+
if len(result) != 5 {
48+
t.Fatalf("expected length 5, got %d", len(result))
4949
}
5050
}
5151

internal/config/config_property_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,8 +65,8 @@ func genConfig(t *rapid.T) *Config {
6565
ds = DataSourceLocalDatabase
6666
}
6767

68-
// Generate 1-3 cities
69-
cityCount := rapid.IntRange(1, 3).Draw(t, "cityCount")
68+
// Generate 1-5 cities
69+
cityCount := rapid.IntRange(1, 5).Draw(t, "cityCount")
7070
cities := make([]CityConfig, cityCount)
7171
for i := 0; i < cityCount; i++ {
7272
cities[i] = genCityConfig(t, "city"+string(rune('0'+i)))

internal/config/validation.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,11 @@ var allowedProviders = map[string]bool{
2222
func Validate(cfg *Config) []ValidationError {
2323
var errs []ValidationError
2424

25-
// Cities length 1–3
26-
if len(cfg.Cities) < 1 || len(cfg.Cities) > 3 {
25+
// Cities length 1–5
26+
if len(cfg.Cities) < 1 || len(cfg.Cities) > 5 {
2727
errs = append(errs, ValidationError{
2828
Field: "cities",
29-
Message: fmt.Sprintf("must contain 1 to 3 cities, got %d", len(cfg.Cities)),
29+
Message: fmt.Sprintf("must contain 1 to 5 cities, got %d", len(cfg.Cities)),
3030
})
3131
}
3232

internal/config/validation_property_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -69,15 +69,15 @@ func genMaybeInvalidConfig(t *rapid.T) (*Config, map[string]bool) {
6969
invalidCitiesCount := rapid.Bool().Draw(t, "invalidCitiesCount")
7070
var cityCount int
7171
if invalidCitiesCount {
72-
// Pick 0 or 4-10 cities
72+
// Pick 0 or 6-10 cities
7373
if rapid.Bool().Draw(t, "zeroCities") {
7474
cityCount = 0
7575
} else {
76-
cityCount = rapid.IntRange(4, 10).Draw(t, "tooManyCities")
76+
cityCount = rapid.IntRange(6, 10).Draw(t, "tooManyCities")
7777
}
7878
expectedErrors["cities"] = true
7979
} else {
80-
cityCount = rapid.IntRange(1, 3).Draw(t, "validCityCount")
80+
cityCount = rapid.IntRange(1, 5).Draw(t, "validCityCount")
8181
}
8282

8383
// --- Generate cities (each may have violations) ---

internal/config/validation_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -57,13 +57,13 @@ func TestValidate_CitiesLength(t *testing.T) {
5757
t.Error("expected error for empty cities")
5858
}
5959

60-
// Four cities
60+
// Six cities
6161
cfg.Cities = []CityConfig{
62-
{Name: "A"}, {Name: "B"}, {Name: "C"}, {Name: "D"},
62+
{Name: "A"}, {Name: "B"}, {Name: "C"}, {Name: "D"}, {Name: "E"}, {Name: "F"},
6363
}
6464
errs = Validate(cfg)
6565
if !hasError(errs, "cities") {
66-
t.Error("expected error for 4 cities")
66+
t.Error("expected error for 6 cities")
6767
}
6868
}
6969

internal/ui/manager.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,8 @@ func (u *UIManager) ShowWidget(cities []config.CityConfig) {
5454
if count == 0 {
5555
count = 1
5656
}
57-
if count > 3 {
58-
count = 3
57+
if count > 5 {
58+
count = 5
5959
}
6060

6161
u.panels = make([]*panel.CityPanel, count)

0 commit comments

Comments
 (0)