Files
go-extractor/sites/megamillions/megamillions_test.go
Steve Dudenhoeffer cb2ed10cfd
Some checks failed
CI / build (push) Failing after 2m4s
CI / test (push) Failing after 2m6s
CI / vet (push) Failing after 2m19s
refactor: restructure API, deduplicate code, expand test coverage
- Extract shared DeferClose helper, removing 14 duplicate copies
- Rename PlayWright-prefixed types to cleaner names (BrowserOptions,
  BrowserSelection, NewBrowser, etc.)
- Rename fields: ServerAddress, RequireServer (was DontLaunchOnConnectFailure)
- Extract shared initBrowser/mergeOptions into browser_init.go,
  deduplicating ~120 lines between NewBrowser and NewInteractiveBrowser
- Remove unused locator field from document struct
- Add tests for all previously untested packages (archive, aislegopher,
  wegmans, useragents, powerball) and expand existing test suites
- Add MIGRATION.md documenting all breaking API changes

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 13:59:47 -05:00

74 lines
1.8 KiB
Go

package megamillions
import (
"testing"
"time"
)
func TestNetTicksToTime_Consistency(t *testing.T) {
// netTicksToTime converts .NET ticks to Go time.
// Verify it produces consistent results for the same input.
ticks := int64(638396256000000000)
t1 := netTicksToTime(ticks)
t2 := netTicksToTime(ticks)
if !t1.Equal(t2) {
t.Errorf("netTicksToTime is not consistent: %v != %v", t1, t2)
}
}
func TestNetTicksToTime_Ordering(t *testing.T) {
// A larger ticks value should produce a later time.
earlier := netTicksToTime(638396256000000000)
later := netTicksToTime(638396256100000000) // 10 seconds later in ticks
if !later.After(earlier) {
t.Errorf("expected later ticks to produce later time: %v vs %v", earlier, later)
}
}
func TestNetTicksToTime_DifferenceIsCorrect(t *testing.T) {
// .NET ticks are 100-nanosecond intervals.
// 10,000,000 ticks = 1 second.
ticks1 := int64(638396256000000000)
ticks2 := ticks1 + 10000000 // 1 second later
t1 := netTicksToTime(ticks1)
t2 := netTicksToTime(ticks2)
diff := t2.Sub(t1)
if diff != time.Second {
t.Errorf("expected 1 second difference, got %v", diff)
}
}
func TestNetTicksToTime_NotZero(t *testing.T) {
// Verify the function produces a non-zero time for typical ticks values.
ticks := int64(638396256000000000)
result := netTicksToTime(ticks)
if result.IsZero() {
t.Error("netTicksToTime should not return zero time for valid ticks")
}
}
func TestConfig_Validate(t *testing.T) {
c := Config{}
c = c.validate()
_ = c // validate is a no-op, just verify no panic
}
func TestDrawing_ZeroValue(t *testing.T) {
var d Drawing
if d.MegaBall != 0 || d.Megaplier != 0 {
t.Error("zero-value Drawing should have zero fields")
}
}
func TestNextDrawing_ZeroValue(t *testing.T) {
var nd NextDrawing
if nd.Date != "" {
t.Error("zero-value NextDrawing should have empty date")
}
}