package models import ( "github.com/stretchr/testify/assert" "testing" "time" ) func TestHeartbeat_Valid_Success(t *testing.T) { sut := &Heartbeat{ User: &User{ ID: "johndoe@example.org", }, UserID: "johndoe@example.org", Time: CustomTime(time.Now()), } assert.True(t, sut.Valid()) } func TestHeartbeat_Valid_MissingUser(t *testing.T) { sut := &Heartbeat{ Time: CustomTime(time.Now()), } assert.False(t, sut.Valid()) } func TestHeartbeat_Augment(t *testing.T) { testMappings := map[string]string{ "py": "Python3", "foo": "Foo Script", "php": "PHP 8", "blade.php": "Blade", } sut1, sut2, sut3 := &Heartbeat{ Entity: "~/dev/file.py", Language: "Python", }, &Heartbeat{ Entity: "~/dev/file.blade.php", Language: "unknown", }, &Heartbeat{ Entity: "~/dev/file.php", Language: "PHP", } sut1.Augment(testMappings) sut2.Augment(testMappings) sut3.Augment(testMappings) assert.Equal(t, "Python3", sut1.Language) assert.Equal(t, "Blade", sut2.Language) assert.Equal(t, "PHP 8", sut3.Language) } func TestHeartbeat_GetKey(t *testing.T) { sut := &Heartbeat{ Project: "wakapi", } assert.Equal(t, "wakapi", sut.GetKey(SummaryProject)) assert.Equal(t, UnknownSummaryKey, sut.GetKey(SummaryOS)) assert.Equal(t, UnknownSummaryKey, sut.GetKey(SummaryMachine)) assert.Equal(t, UnknownSummaryKey, sut.GetKey(SummaryLanguage)) assert.Equal(t, UnknownSummaryKey, sut.GetKey(SummaryEditor)) assert.Equal(t, UnknownSummaryKey, sut.GetKey(255)) }