From 2fec2a468ee0902bd97851095d44f86ccff97e8f Mon Sep 17 00:00:00 2001 From: Gokhan Sari Date: Mon, 1 May 2023 02:47:30 +0300 Subject: [PATCH 1/4] Fix the misconfigured base url env var --- frontend/Dockerfile | 2 +- frontend/next-sitemap.config.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/frontend/Dockerfile b/frontend/Dockerfile index da7e60e..38e4d62 100644 --- a/frontend/Dockerfile +++ b/frontend/Dockerfile @@ -46,7 +46,7 @@ COPY tsconfig.json . ENV NEXT_TELEMETRY_DISABLED=1 -ENV BASE_URL=${BASE_URL} +ENV NEXT_PUBLIC_BASE_URL=${BASE_URL} ENV NEXT_PUBLIC_GOOGLE_CLIENT_ID=${GOOGLE_CLIENT_ID} ENV NEXT_PUBLIC_HOSTED=${HOSTED} ENV NEXT_PUBLIC_REST_API_BASE_URL=${REST_API_BASE_URL} diff --git a/frontend/next-sitemap.config.js b/frontend/next-sitemap.config.js index f6eb566..e4e42a9 100644 --- a/frontend/next-sitemap.config.js +++ b/frontend/next-sitemap.config.js @@ -23,5 +23,5 @@ module.exports = { userAgent: "*", }], }, - siteUrl: process.env.BASE_URL, + siteUrl: process.env.NEXT_PUBLIC_BASE_URL, }; From 0bf119b74b574f2c8e28ea58dae3409287c433a8 Mon Sep 17 00:00:00 2001 From: Gokhan Sari Date: Mon, 1 May 2023 03:23:26 +0300 Subject: [PATCH 2/4] Fix tests --- backend/pkg/service/sitereport/browserversion/main.go | 2 +- backend/pkg/service/sitereport/operatingsystemname/main.go | 2 +- backend/pkg/service/sitereport/operatingsystemversion/main.go | 2 +- backend/pkg/service/sitereport/referrersite/main.go | 4 ++-- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/backend/pkg/service/sitereport/browserversion/main.go b/backend/pkg/service/sitereport/browserversion/main.go index 4fd2dc1..a936775 100644 --- a/backend/pkg/service/sitereport/browserversion/main.go +++ b/backend/pkg/service/sitereport/browserversion/main.go @@ -41,7 +41,7 @@ func Get(dp *depot.Depot, filters *filter.Filters, paginationCursor *PaginationC totalVisitorCountSubQuery := baseQuery. Session(&gorm.Session{}). - Select("count(distinct visitor_id) as count") + Select("count(distinct visitor_id)") baseSubQuery := baseQuery. Session(&gorm.Session{}). diff --git a/backend/pkg/service/sitereport/operatingsystemname/main.go b/backend/pkg/service/sitereport/operatingsystemname/main.go index 48fb7b7..bca8faf 100644 --- a/backend/pkg/service/sitereport/operatingsystemname/main.go +++ b/backend/pkg/service/sitereport/operatingsystemname/main.go @@ -34,7 +34,7 @@ func Get(dp *depot.Depot, filters *filter.Filters, paginationCursor *PaginationC totalVisitorCountSubQuery := baseQuery. Session(&gorm.Session{}). - Select("count(distinct visitor_id) as count") + Select("count(distinct visitor_id)") baseSubQuery := baseQuery. Session(&gorm.Session{}). diff --git a/backend/pkg/service/sitereport/operatingsystemversion/main.go b/backend/pkg/service/sitereport/operatingsystemversion/main.go index 004ec11..62bfff4 100644 --- a/backend/pkg/service/sitereport/operatingsystemversion/main.go +++ b/backend/pkg/service/sitereport/operatingsystemversion/main.go @@ -41,7 +41,7 @@ func Get(dp *depot.Depot, filters *filter.Filters, paginationCursor *PaginationC totalVisitorCountSubQuery := baseQuery. Session(&gorm.Session{}). - Select("count(distinct visitor_id) as count") + Select("count(distinct visitor_id)") baseSubQuery := baseQuery. Session(&gorm.Session{}). diff --git a/backend/pkg/service/sitereport/referrersite/main.go b/backend/pkg/service/sitereport/referrersite/main.go index d3aa6fe..36e4530 100644 --- a/backend/pkg/service/sitereport/referrersite/main.go +++ b/backend/pkg/service/sitereport/referrersite/main.go @@ -33,11 +33,11 @@ func Get(dp *depot.Depot, filters *filter.Filters, paginationCursor *PaginationC baseQuery := filter.Apply(dp, filters). Where("referrer is not null"). Where("protocol(referrer) in ('http', 'https')"). - Where("domain(referrer) != domain(events_buffer.url)") + Where("domain(referrer) != domain(url)") totalVisitorCountSubQuery := baseQuery. Session(&gorm.Session{}). - Select("count(distinct visitor_id) as count") + Select("count(distinct visitor_id)") baseSubQuery := baseQuery. Session(&gorm.Session{}). From cbd6ab4ea938a34088e18fb56cb07f9f6080641f Mon Sep 17 00:00:00 2001 From: Gokhan Sari Date: Mon, 1 May 2023 03:33:27 +0300 Subject: [PATCH 3/4] Fix tests --- .idea/runConfigurations/_template__of_Go_Test.xml | 1 + backend/pkg/service/sitereport/browsername/main_test.go | 2 +- backend/pkg/service/sitereport/browserversion/main_test.go | 2 +- backend/pkg/service/sitereport/country/main_test.go | 2 +- backend/pkg/service/sitereport/language/main_test.go | 2 +- backend/pkg/service/sitereport/operatingsystemname/main_test.go | 2 +- .../pkg/service/sitereport/operatingsystemversion/main_test.go | 2 +- backend/pkg/service/sitereport/path/main_test.go | 2 +- backend/pkg/service/sitereport/referrerpath/main_test.go | 2 +- backend/pkg/service/sitereport/referrersite/main_test.go | 2 +- backend/pkg/service/sitereport/utmcampaign/main_test.go | 2 +- backend/pkg/service/sitereport/utmcontent/main_test.go | 2 +- backend/pkg/service/sitereport/utmmedium/main_test.go | 2 +- backend/pkg/service/sitereport/utmsource/main_test.go | 2 +- backend/pkg/service/sitereport/utmterm/main_test.go | 2 +- 15 files changed, 15 insertions(+), 14 deletions(-) diff --git a/.idea/runConfigurations/_template__of_Go_Test.xml b/.idea/runConfigurations/_template__of_Go_Test.xml index 1e0cc8c..6eeb6d0 100644 --- a/.idea/runConfigurations/_template__of_Go_Test.xml +++ b/.idea/runConfigurations/_template__of_Go_Test.xml @@ -3,6 +3,7 @@ + diff --git a/backend/pkg/service/sitereport/browsername/main_test.go b/backend/pkg/service/sitereport/browsername/main_test.go index 9660a14..8186a75 100644 --- a/backend/pkg/service/sitereport/browsername/main_test.go +++ b/backend/pkg/service/sitereport/browsername/main_test.go @@ -88,7 +88,7 @@ func TestGet(t *testing.T) { } if filteredTestData[i].VisitorCount == filteredTestData[j].VisitorCount { - return *filteredTestData[i].BrowserName > *filteredTestData[j].BrowserName + return *filteredTestData[i].BrowserName < *filteredTestData[j].BrowserName } return false diff --git a/backend/pkg/service/sitereport/browserversion/main_test.go b/backend/pkg/service/sitereport/browserversion/main_test.go index 4832134..30fe703 100644 --- a/backend/pkg/service/sitereport/browserversion/main_test.go +++ b/backend/pkg/service/sitereport/browserversion/main_test.go @@ -89,7 +89,7 @@ func TestGet(t *testing.T) { } if filteredTestData[i].VisitorCount == filteredTestData[j].VisitorCount { - return *filteredTestData[i].BrowserVersion > *filteredTestData[j].BrowserVersion + return *filteredTestData[i].BrowserVersion < *filteredTestData[j].BrowserVersion } return false diff --git a/backend/pkg/service/sitereport/country/main_test.go b/backend/pkg/service/sitereport/country/main_test.go index 712f31e..2970cbc 100644 --- a/backend/pkg/service/sitereport/country/main_test.go +++ b/backend/pkg/service/sitereport/country/main_test.go @@ -65,7 +65,7 @@ func TestGet(t *testing.T) { } if testData[i].VisitorCount == testData[j].VisitorCount { - return testData[i].CountryIsoCode > testData[j].CountryIsoCode + return testData[i].CountryIsoCode < testData[j].CountryIsoCode } return false diff --git a/backend/pkg/service/sitereport/language/main_test.go b/backend/pkg/service/sitereport/language/main_test.go index 4c1b221..8f78f43 100644 --- a/backend/pkg/service/sitereport/language/main_test.go +++ b/backend/pkg/service/sitereport/language/main_test.go @@ -87,7 +87,7 @@ func TestGet(t *testing.T) { } if filteredTestData[i].VisitorCount == filteredTestData[j].VisitorCount { - return *filteredTestData[i].Language > *filteredTestData[j].Language + return *filteredTestData[i].Language < *filteredTestData[j].Language } return false diff --git a/backend/pkg/service/sitereport/operatingsystemname/main_test.go b/backend/pkg/service/sitereport/operatingsystemname/main_test.go index 22402b2..68b4e26 100644 --- a/backend/pkg/service/sitereport/operatingsystemname/main_test.go +++ b/backend/pkg/service/sitereport/operatingsystemname/main_test.go @@ -93,7 +93,7 @@ func TestGet(t *testing.T) { } if filteredTestData[i].VisitorCount == filteredTestData[j].VisitorCount { - return *filteredTestData[i].OperatingSystemName > *filteredTestData[j].OperatingSystemName + return *filteredTestData[i].OperatingSystemName < *filteredTestData[j].OperatingSystemName } return false diff --git a/backend/pkg/service/sitereport/operatingsystemversion/main_test.go b/backend/pkg/service/sitereport/operatingsystemversion/main_test.go index 3da71ae..413f808 100644 --- a/backend/pkg/service/sitereport/operatingsystemversion/main_test.go +++ b/backend/pkg/service/sitereport/operatingsystemversion/main_test.go @@ -89,7 +89,7 @@ func TestGet(t *testing.T) { } if filteredTestData[i].VisitorCount == filteredTestData[j].VisitorCount { - return *filteredTestData[i].OperatingSystemVersion > *filteredTestData[j].OperatingSystemVersion + return *filteredTestData[i].OperatingSystemVersion < *filteredTestData[j].OperatingSystemVersion } return false diff --git a/backend/pkg/service/sitereport/path/main_test.go b/backend/pkg/service/sitereport/path/main_test.go index 549c366..0ff4a24 100644 --- a/backend/pkg/service/sitereport/path/main_test.go +++ b/backend/pkg/service/sitereport/path/main_test.go @@ -57,7 +57,7 @@ func TestGet(t *testing.T) { } if testData[i].VisitorCount == testData[j].VisitorCount { - return testData[i].Path > testData[j].Path + return testData[i].Path < testData[j].Path } return false diff --git a/backend/pkg/service/sitereport/referrerpath/main_test.go b/backend/pkg/service/sitereport/referrerpath/main_test.go index 1845ae0..6c426ad 100644 --- a/backend/pkg/service/sitereport/referrerpath/main_test.go +++ b/backend/pkg/service/sitereport/referrerpath/main_test.go @@ -98,7 +98,7 @@ func TestGet(t *testing.T) { } if filteredTestData[i].VisitorCount == filteredTestData[j].VisitorCount { - return *filteredTestData[i].ReferrerPath > *filteredTestData[j].ReferrerPath + return *filteredTestData[i].ReferrerPath < *filteredTestData[j].ReferrerPath } return false diff --git a/backend/pkg/service/sitereport/referrersite/main_test.go b/backend/pkg/service/sitereport/referrersite/main_test.go index 888a740..bdd9142 100644 --- a/backend/pkg/service/sitereport/referrersite/main_test.go +++ b/backend/pkg/service/sitereport/referrersite/main_test.go @@ -94,7 +94,7 @@ func TestGet(t *testing.T) { } if filteredTestData[i].VisitorCount == filteredTestData[j].VisitorCount { - return *filteredTestData[i].ReferrerSite > *filteredTestData[j].ReferrerSite + return *filteredTestData[i].ReferrerSite < *filteredTestData[j].ReferrerSite } return false diff --git a/backend/pkg/service/sitereport/utmcampaign/main_test.go b/backend/pkg/service/sitereport/utmcampaign/main_test.go index c95c2ae..4c4c076 100644 --- a/backend/pkg/service/sitereport/utmcampaign/main_test.go +++ b/backend/pkg/service/sitereport/utmcampaign/main_test.go @@ -93,7 +93,7 @@ func TestGet(t *testing.T) { } if filteredTestData[i].VisitorCount == filteredTestData[j].VisitorCount { - return *filteredTestData[i].UtmCampaign > *filteredTestData[j].UtmCampaign + return *filteredTestData[i].UtmCampaign < *filteredTestData[j].UtmCampaign } return false diff --git a/backend/pkg/service/sitereport/utmcontent/main_test.go b/backend/pkg/service/sitereport/utmcontent/main_test.go index d6a0008..7ad9aa1 100644 --- a/backend/pkg/service/sitereport/utmcontent/main_test.go +++ b/backend/pkg/service/sitereport/utmcontent/main_test.go @@ -93,7 +93,7 @@ func TestGet(t *testing.T) { } if filteredTestData[i].VisitorCount == filteredTestData[j].VisitorCount { - return *filteredTestData[i].UtmContent > *filteredTestData[j].UtmContent + return *filteredTestData[i].UtmContent < *filteredTestData[j].UtmContent } return false diff --git a/backend/pkg/service/sitereport/utmmedium/main_test.go b/backend/pkg/service/sitereport/utmmedium/main_test.go index 5f58251..503ef97 100644 --- a/backend/pkg/service/sitereport/utmmedium/main_test.go +++ b/backend/pkg/service/sitereport/utmmedium/main_test.go @@ -93,7 +93,7 @@ func TestGet(t *testing.T) { } if filteredTestData[i].VisitorCount == filteredTestData[j].VisitorCount { - return *filteredTestData[i].UtmMedium > *filteredTestData[j].UtmMedium + return *filteredTestData[i].UtmMedium < *filteredTestData[j].UtmMedium } return false diff --git a/backend/pkg/service/sitereport/utmsource/main_test.go b/backend/pkg/service/sitereport/utmsource/main_test.go index 26524b0..d01aa2e 100644 --- a/backend/pkg/service/sitereport/utmsource/main_test.go +++ b/backend/pkg/service/sitereport/utmsource/main_test.go @@ -93,7 +93,7 @@ func TestGet(t *testing.T) { } if filteredTestData[i].VisitorCount == filteredTestData[j].VisitorCount { - return *filteredTestData[i].UtmSource > *filteredTestData[j].UtmSource + return *filteredTestData[i].UtmSource < *filteredTestData[j].UtmSource } return false diff --git a/backend/pkg/service/sitereport/utmterm/main_test.go b/backend/pkg/service/sitereport/utmterm/main_test.go index b05337b..f437204 100644 --- a/backend/pkg/service/sitereport/utmterm/main_test.go +++ b/backend/pkg/service/sitereport/utmterm/main_test.go @@ -93,7 +93,7 @@ func TestGet(t *testing.T) { } if filteredTestData[i].VisitorCount == filteredTestData[j].VisitorCount { - return *filteredTestData[i].UtmTerm > *filteredTestData[j].UtmTerm + return *filteredTestData[i].UtmTerm < *filteredTestData[j].UtmTerm } return false From 650a2063ddf0c6d3847fcebbc8a8c896db205363 Mon Sep 17 00:00:00 2001 From: Gokhan Sari Date: Mon, 1 May 2023 03:50:42 +0300 Subject: [PATCH 4/4] Fix tests --- .../sitereport/pageviewtrends/main_test.go | 300 +++++++++--------- .../sitereport/timetrends/main_test.go | 300 +++++++++--------- .../service/sitereport/utmterm/main_test.go | 31 +- 3 files changed, 311 insertions(+), 320 deletions(-) diff --git a/backend/pkg/service/sitereport/pageviewtrends/main_test.go b/backend/pkg/service/sitereport/pageviewtrends/main_test.go index 97a5c91..a287b4f 100644 --- a/backend/pkg/service/sitereport/pageviewtrends/main_test.go +++ b/backend/pkg/service/sitereport/pageviewtrends/main_test.go @@ -2,10 +2,10 @@ package pageviewtrends import ( "fmt" - "os" "testing" "time" + "github.com/go-errors/errors" "github.com/google/uuid" "github.com/stretchr/testify/assert" @@ -15,11 +15,9 @@ import ( h "github.com/th0th/poeticmetric/backend/pkg/testhelper" ) -var ( - dp *depot.Depot -) - func TestGet(t *testing.T) { + dp := h.NewDepot() + start, err := time.Parse("2006-01-02", "2022-01-01") assert.NoError(t, err) @@ -71,161 +69,159 @@ func TestGet(t *testing.T) { "2022-11-27 23:59", } - for _, timeZone := range timeZones { - modelSite := h.Site(dp, nil) - - var loc *time.Location - - loc, err = time.LoadLocation(timeZone) - if err != nil { - panic(err) - } - - events := []*model.Event{} + _ = dp.WithPostgresTransaction(func(dp2 *depot.Depot) error { + for _, timeZone := range timeZones { + modelSite := h.Site(dp2, nil) - for _, s := range pageViewTimeStrings { - var dateTime time.Time + var loc *time.Location - dateTime, err = time.Parse("2006-01-02 15:04", s) + loc, err = time.LoadLocation(timeZone) if err != nil { panic(err) } - dateTime = time.Date( - dateTime.Year(), - dateTime.Month(), - dateTime.Day(), - dateTime.Hour(), - dateTime.Minute(), - dateTime.Second(), - dateTime.Nanosecond(), - loc, - ) - - events = append(events, &model.Event{ - DateTime: dateTime, - Id: uuid.NewString(), - Kind: model.EventKindPageView, - SiteId: modelSite.Id, - VisitorId: "1", - }) - } + events := []*model.Event{} + + for _, s := range pageViewTimeStrings { + var dateTime time.Time + + dateTime, err = time.Parse("2006-01-02 15:04", s) + if err != nil { + panic(err) + } + + dateTime = time.Date( + dateTime.Year(), + dateTime.Month(), + dateTime.Day(), + dateTime.Hour(), + dateTime.Minute(), + dateTime.Second(), + dateTime.Nanosecond(), + loc, + ) + + events = append(events, &model.Event{ + DateTime: dateTime, + Id: uuid.NewString(), + Kind: model.EventKindPageView, + SiteId: modelSite.Id, + VisitorId: "1", + }) + } - err = dp.ClickHouse(). - Create(&events). - Error - assert.NoError(t, err) - - var report Report - - report, err = Get(dp, &filter.Filters{ - End: end, - SiteId: modelSite.Id, - Start: start, - TimeZone: &timeZone, - }) - assert.NoError(t, err) - - expectedReport := Report{ - {Day: 1, Hour: 0, PageViewCount: 5}, - {Day: 1, Hour: 2, PageViewCount: 0}, - {Day: 1, Hour: 4, PageViewCount: 0}, - {Day: 1, Hour: 6, PageViewCount: 0}, - {Day: 1, Hour: 8, PageViewCount: 0}, - {Day: 1, Hour: 10, PageViewCount: 0}, - {Day: 1, Hour: 12, PageViewCount: 0}, - {Day: 1, Hour: 14, PageViewCount: 0}, - {Day: 1, Hour: 16, PageViewCount: 0}, - {Day: 1, Hour: 18, PageViewCount: 0}, - {Day: 1, Hour: 20, PageViewCount: 0}, - {Day: 1, Hour: 22, PageViewCount: 0}, - {Day: 2, Hour: 0, PageViewCount: 0}, - {Day: 2, Hour: 2, PageViewCount: 0}, - {Day: 2, Hour: 4, PageViewCount: 4}, - {Day: 2, Hour: 6, PageViewCount: 0}, - {Day: 2, Hour: 8, PageViewCount: 0}, - {Day: 2, Hour: 10, PageViewCount: 0}, - {Day: 2, Hour: 12, PageViewCount: 0}, - {Day: 2, Hour: 14, PageViewCount: 0}, - {Day: 2, Hour: 16, PageViewCount: 0}, - {Day: 2, Hour: 18, PageViewCount: 0}, - {Day: 2, Hour: 20, PageViewCount: 0}, - {Day: 2, Hour: 22, PageViewCount: 0}, - {Day: 3, Hour: 0, PageViewCount: 0}, - {Day: 3, Hour: 2, PageViewCount: 0}, - {Day: 3, Hour: 4, PageViewCount: 0}, - {Day: 3, Hour: 6, PageViewCount: 0}, - {Day: 3, Hour: 8, PageViewCount: 0}, - {Day: 3, Hour: 10, PageViewCount: 0}, - {Day: 3, Hour: 12, PageViewCount: 0}, - {Day: 3, Hour: 14, PageViewCount: 2}, - {Day: 3, Hour: 16, PageViewCount: 0}, - {Day: 3, Hour: 18, PageViewCount: 0}, - {Day: 3, Hour: 20, PageViewCount: 0}, - {Day: 3, Hour: 22, PageViewCount: 0}, - {Day: 4, Hour: 0, PageViewCount: 0}, - {Day: 4, Hour: 2, PageViewCount: 0}, - {Day: 4, Hour: 4, PageViewCount: 0}, - {Day: 4, Hour: 6, PageViewCount: 0}, - {Day: 4, Hour: 8, PageViewCount: 9}, - {Day: 4, Hour: 10, PageViewCount: 0}, - {Day: 4, Hour: 12, PageViewCount: 0}, - {Day: 4, Hour: 14, PageViewCount: 0}, - {Day: 4, Hour: 16, PageViewCount: 0}, - {Day: 4, Hour: 18, PageViewCount: 0}, - {Day: 4, Hour: 20, PageViewCount: 0}, - {Day: 4, Hour: 22, PageViewCount: 0}, - {Day: 5, Hour: 0, PageViewCount: 0}, - {Day: 5, Hour: 2, PageViewCount: 0}, - {Day: 5, Hour: 4, PageViewCount: 0}, - {Day: 5, Hour: 6, PageViewCount: 0}, - {Day: 5, Hour: 8, PageViewCount: 0}, - {Day: 5, Hour: 10, PageViewCount: 0}, - {Day: 5, Hour: 12, PageViewCount: 0}, - {Day: 5, Hour: 14, PageViewCount: 0}, - {Day: 5, Hour: 16, PageViewCount: 0}, - {Day: 5, Hour: 18, PageViewCount: 0}, - {Day: 5, Hour: 20, PageViewCount: 0}, - {Day: 5, Hour: 22, PageViewCount: 0}, - {Day: 6, Hour: 0, PageViewCount: 0}, - {Day: 6, Hour: 2, PageViewCount: 0}, - {Day: 6, Hour: 4, PageViewCount: 0}, - {Day: 6, Hour: 6, PageViewCount: 0}, - {Day: 6, Hour: 8, PageViewCount: 0}, - {Day: 6, Hour: 10, PageViewCount: 0}, - {Day: 6, Hour: 12, PageViewCount: 0}, - {Day: 6, Hour: 14, PageViewCount: 0}, - {Day: 6, Hour: 16, PageViewCount: 0}, - {Day: 6, Hour: 18, PageViewCount: 0}, - {Day: 6, Hour: 20, PageViewCount: 0}, - {Day: 6, Hour: 22, PageViewCount: 0}, - {Day: 7, Hour: 0, PageViewCount: 0}, - {Day: 7, Hour: 2, PageViewCount: 0}, - {Day: 7, Hour: 4, PageViewCount: 0}, - {Day: 7, Hour: 6, PageViewCount: 0}, - {Day: 7, Hour: 8, PageViewCount: 0}, - {Day: 7, Hour: 10, PageViewCount: 0}, - {Day: 7, Hour: 12, PageViewCount: 0}, - {Day: 7, Hour: 14, PageViewCount: 0}, - {Day: 7, Hour: 16, PageViewCount: 0}, - {Day: 7, Hour: 18, PageViewCount: 0}, - {Day: 7, Hour: 20, PageViewCount: 0}, - {Day: 7, Hour: 22, PageViewCount: 6}, - } + err = dp2.ClickHouse(). + Create(&events). + Error + assert.NoError(t, err) - for i := range expectedReport { - assert.Equal( - t, - expectedReport[i], - report[i], - fmt.Sprintf("Time zone: %s, Day: %d, Hour: %d", timeZone, expectedReport[i].Day, expectedReport[i].Hour), - ) - } - } -} + var report Report -func TestMain(m *testing.M) { - dp = h.NewDepot() + report, err = Get(dp2, &filter.Filters{ + End: end, + SiteId: modelSite.Id, + Start: start, + TimeZone: &timeZone, + }) + assert.NoError(t, err) + + expectedReport := Report{ + {Day: 1, Hour: 0, PageViewCount: 5}, + {Day: 1, Hour: 2, PageViewCount: 0}, + {Day: 1, Hour: 4, PageViewCount: 0}, + {Day: 1, Hour: 6, PageViewCount: 0}, + {Day: 1, Hour: 8, PageViewCount: 0}, + {Day: 1, Hour: 10, PageViewCount: 0}, + {Day: 1, Hour: 12, PageViewCount: 0}, + {Day: 1, Hour: 14, PageViewCount: 0}, + {Day: 1, Hour: 16, PageViewCount: 0}, + {Day: 1, Hour: 18, PageViewCount: 0}, + {Day: 1, Hour: 20, PageViewCount: 0}, + {Day: 1, Hour: 22, PageViewCount: 0}, + {Day: 2, Hour: 0, PageViewCount: 0}, + {Day: 2, Hour: 2, PageViewCount: 0}, + {Day: 2, Hour: 4, PageViewCount: 4}, + {Day: 2, Hour: 6, PageViewCount: 0}, + {Day: 2, Hour: 8, PageViewCount: 0}, + {Day: 2, Hour: 10, PageViewCount: 0}, + {Day: 2, Hour: 12, PageViewCount: 0}, + {Day: 2, Hour: 14, PageViewCount: 0}, + {Day: 2, Hour: 16, PageViewCount: 0}, + {Day: 2, Hour: 18, PageViewCount: 0}, + {Day: 2, Hour: 20, PageViewCount: 0}, + {Day: 2, Hour: 22, PageViewCount: 0}, + {Day: 3, Hour: 0, PageViewCount: 0}, + {Day: 3, Hour: 2, PageViewCount: 0}, + {Day: 3, Hour: 4, PageViewCount: 0}, + {Day: 3, Hour: 6, PageViewCount: 0}, + {Day: 3, Hour: 8, PageViewCount: 0}, + {Day: 3, Hour: 10, PageViewCount: 0}, + {Day: 3, Hour: 12, PageViewCount: 0}, + {Day: 3, Hour: 14, PageViewCount: 2}, + {Day: 3, Hour: 16, PageViewCount: 0}, + {Day: 3, Hour: 18, PageViewCount: 0}, + {Day: 3, Hour: 20, PageViewCount: 0}, + {Day: 3, Hour: 22, PageViewCount: 0}, + {Day: 4, Hour: 0, PageViewCount: 0}, + {Day: 4, Hour: 2, PageViewCount: 0}, + {Day: 4, Hour: 4, PageViewCount: 0}, + {Day: 4, Hour: 6, PageViewCount: 0}, + {Day: 4, Hour: 8, PageViewCount: 9}, + {Day: 4, Hour: 10, PageViewCount: 0}, + {Day: 4, Hour: 12, PageViewCount: 0}, + {Day: 4, Hour: 14, PageViewCount: 0}, + {Day: 4, Hour: 16, PageViewCount: 0}, + {Day: 4, Hour: 18, PageViewCount: 0}, + {Day: 4, Hour: 20, PageViewCount: 0}, + {Day: 4, Hour: 22, PageViewCount: 0}, + {Day: 5, Hour: 0, PageViewCount: 0}, + {Day: 5, Hour: 2, PageViewCount: 0}, + {Day: 5, Hour: 4, PageViewCount: 0}, + {Day: 5, Hour: 6, PageViewCount: 0}, + {Day: 5, Hour: 8, PageViewCount: 0}, + {Day: 5, Hour: 10, PageViewCount: 0}, + {Day: 5, Hour: 12, PageViewCount: 0}, + {Day: 5, Hour: 14, PageViewCount: 0}, + {Day: 5, Hour: 16, PageViewCount: 0}, + {Day: 5, Hour: 18, PageViewCount: 0}, + {Day: 5, Hour: 20, PageViewCount: 0}, + {Day: 5, Hour: 22, PageViewCount: 0}, + {Day: 6, Hour: 0, PageViewCount: 0}, + {Day: 6, Hour: 2, PageViewCount: 0}, + {Day: 6, Hour: 4, PageViewCount: 0}, + {Day: 6, Hour: 6, PageViewCount: 0}, + {Day: 6, Hour: 8, PageViewCount: 0}, + {Day: 6, Hour: 10, PageViewCount: 0}, + {Day: 6, Hour: 12, PageViewCount: 0}, + {Day: 6, Hour: 14, PageViewCount: 0}, + {Day: 6, Hour: 16, PageViewCount: 0}, + {Day: 6, Hour: 18, PageViewCount: 0}, + {Day: 6, Hour: 20, PageViewCount: 0}, + {Day: 6, Hour: 22, PageViewCount: 0}, + {Day: 7, Hour: 0, PageViewCount: 0}, + {Day: 7, Hour: 2, PageViewCount: 0}, + {Day: 7, Hour: 4, PageViewCount: 0}, + {Day: 7, Hour: 6, PageViewCount: 0}, + {Day: 7, Hour: 8, PageViewCount: 0}, + {Day: 7, Hour: 10, PageViewCount: 0}, + {Day: 7, Hour: 12, PageViewCount: 0}, + {Day: 7, Hour: 14, PageViewCount: 0}, + {Day: 7, Hour: 16, PageViewCount: 0}, + {Day: 7, Hour: 18, PageViewCount: 0}, + {Day: 7, Hour: 20, PageViewCount: 0}, + {Day: 7, Hour: 22, PageViewCount: 6}, + } + + for i := range expectedReport { + assert.Equal( + t, + expectedReport[i], + report[i], + fmt.Sprintf("Time zone: %s, Day: %d, Hour: %d", timeZone, expectedReport[i].Day, expectedReport[i].Hour), + ) + } + } - os.Exit(m.Run()) + return errors.New("") + }) } diff --git a/backend/pkg/service/sitereport/timetrends/main_test.go b/backend/pkg/service/sitereport/timetrends/main_test.go index a4a6468..52e25f5 100644 --- a/backend/pkg/service/sitereport/timetrends/main_test.go +++ b/backend/pkg/service/sitereport/timetrends/main_test.go @@ -2,10 +2,10 @@ package timetrends import ( "fmt" - "os" "testing" "time" + "github.com/go-errors/errors" "github.com/google/uuid" "github.com/stretchr/testify/assert" @@ -15,11 +15,9 @@ import ( h "github.com/th0th/poeticmetric/backend/pkg/testhelper" ) -var ( - dp *depot.Depot -) - func TestGet(t *testing.T) { + dp := h.NewDepot() + start, err := time.Parse("2006-01-02", "2022-01-01") assert.NoError(t, err) @@ -52,161 +50,159 @@ func TestGet(t *testing.T) { {DateTimeString: "2022-11-22 13:59", VisitorId: "5"}, } - for _, timeZone := range timeZones { - modelSite := h.Site(dp, nil) - - var loc *time.Location - - loc, err = time.LoadLocation(timeZone) - if err != nil { - panic(err) - } - - events := []*model.Event{} + _ = dp.WithPostgresTransaction(func(dp2 *depot.Depot) error { + for _, timeZone := range timeZones { + modelSite := h.Site(dp2, nil) - for _, d := range data { - var dateTime time.Time + var loc *time.Location - dateTime, err = time.Parse("2006-01-02 15:04", d.DateTimeString) + loc, err = time.LoadLocation(timeZone) if err != nil { panic(err) } - dateTime = time.Date( - dateTime.Year(), - dateTime.Month(), - dateTime.Day(), - dateTime.Hour(), - dateTime.Minute(), - dateTime.Second(), - dateTime.Nanosecond(), - loc, - ) - - events = append(events, &model.Event{ - DateTime: dateTime, - Id: uuid.NewString(), - Kind: model.EventKindPageView, - SiteId: modelSite.Id, - VisitorId: d.VisitorId, - }) - } + events := []*model.Event{} + + for _, d := range data { + var dateTime time.Time + + dateTime, err = time.Parse("2006-01-02 15:04", d.DateTimeString) + if err != nil { + panic(err) + } + + dateTime = time.Date( + dateTime.Year(), + dateTime.Month(), + dateTime.Day(), + dateTime.Hour(), + dateTime.Minute(), + dateTime.Second(), + dateTime.Nanosecond(), + loc, + ) + + events = append(events, &model.Event{ + DateTime: dateTime, + Id: uuid.NewString(), + Kind: model.EventKindPageView, + SiteId: modelSite.Id, + VisitorId: d.VisitorId, + }) + } - err = dp.ClickHouse(). - Create(&events). - Error - assert.NoError(t, err) - - var report Report - - report, err = Get(dp, &filter.Filters{ - End: end, - SiteId: modelSite.Id, - Start: start, - TimeZone: &timeZone, - }) - assert.NoError(t, err) - - expectedReport := Report{ - {Day: 1, Hour: 0, VisitorCount: 3}, - {Day: 1, Hour: 2, VisitorCount: 0}, - {Day: 1, Hour: 4, VisitorCount: 0}, - {Day: 1, Hour: 6, VisitorCount: 0}, - {Day: 1, Hour: 8, VisitorCount: 0}, - {Day: 1, Hour: 10, VisitorCount: 0}, - {Day: 1, Hour: 12, VisitorCount: 0}, - {Day: 1, Hour: 14, VisitorCount: 0}, - {Day: 1, Hour: 16, VisitorCount: 0}, - {Day: 1, Hour: 18, VisitorCount: 0}, - {Day: 1, Hour: 20, VisitorCount: 0}, - {Day: 1, Hour: 22, VisitorCount: 0}, - {Day: 2, Hour: 0, VisitorCount: 0}, - {Day: 2, Hour: 2, VisitorCount: 0}, - {Day: 2, Hour: 4, VisitorCount: 0}, - {Day: 2, Hour: 6, VisitorCount: 0}, - {Day: 2, Hour: 8, VisitorCount: 0}, - {Day: 2, Hour: 10, VisitorCount: 0}, - {Day: 2, Hour: 12, VisitorCount: 5}, - {Day: 2, Hour: 14, VisitorCount: 0}, - {Day: 2, Hour: 16, VisitorCount: 0}, - {Day: 2, Hour: 18, VisitorCount: 0}, - {Day: 2, Hour: 20, VisitorCount: 0}, - {Day: 2, Hour: 22, VisitorCount: 0}, - {Day: 3, Hour: 0, VisitorCount: 0}, - {Day: 3, Hour: 2, VisitorCount: 0}, - {Day: 3, Hour: 4, VisitorCount: 0}, - {Day: 3, Hour: 6, VisitorCount: 0}, - {Day: 3, Hour: 8, VisitorCount: 0}, - {Day: 3, Hour: 10, VisitorCount: 0}, - {Day: 3, Hour: 12, VisitorCount: 0}, - {Day: 3, Hour: 14, VisitorCount: 0}, - {Day: 3, Hour: 16, VisitorCount: 0}, - {Day: 3, Hour: 18, VisitorCount: 0}, - {Day: 3, Hour: 20, VisitorCount: 0}, - {Day: 3, Hour: 22, VisitorCount: 0}, - {Day: 4, Hour: 0, VisitorCount: 0}, - {Day: 4, Hour: 2, VisitorCount: 0}, - {Day: 4, Hour: 4, VisitorCount: 0}, - {Day: 4, Hour: 6, VisitorCount: 0}, - {Day: 4, Hour: 8, VisitorCount: 0}, - {Day: 4, Hour: 10, VisitorCount: 0}, - {Day: 4, Hour: 12, VisitorCount: 0}, - {Day: 4, Hour: 14, VisitorCount: 0}, - {Day: 4, Hour: 16, VisitorCount: 0}, - {Day: 4, Hour: 18, VisitorCount: 0}, - {Day: 4, Hour: 20, VisitorCount: 0}, - {Day: 4, Hour: 22, VisitorCount: 0}, - {Day: 5, Hour: 0, VisitorCount: 0}, - {Day: 5, Hour: 2, VisitorCount: 0}, - {Day: 5, Hour: 4, VisitorCount: 0}, - {Day: 5, Hour: 6, VisitorCount: 0}, - {Day: 5, Hour: 8, VisitorCount: 0}, - {Day: 5, Hour: 10, VisitorCount: 0}, - {Day: 5, Hour: 12, VisitorCount: 0}, - {Day: 5, Hour: 14, VisitorCount: 0}, - {Day: 5, Hour: 16, VisitorCount: 0}, - {Day: 5, Hour: 18, VisitorCount: 0}, - {Day: 5, Hour: 20, VisitorCount: 0}, - {Day: 5, Hour: 22, VisitorCount: 0}, - {Day: 6, Hour: 0, VisitorCount: 0}, - {Day: 6, Hour: 2, VisitorCount: 0}, - {Day: 6, Hour: 4, VisitorCount: 0}, - {Day: 6, Hour: 6, VisitorCount: 0}, - {Day: 6, Hour: 8, VisitorCount: 0}, - {Day: 6, Hour: 10, VisitorCount: 0}, - {Day: 6, Hour: 12, VisitorCount: 0}, - {Day: 6, Hour: 14, VisitorCount: 0}, - {Day: 6, Hour: 16, VisitorCount: 0}, - {Day: 6, Hour: 18, VisitorCount: 0}, - {Day: 6, Hour: 20, VisitorCount: 0}, - {Day: 6, Hour: 22, VisitorCount: 0}, - {Day: 7, Hour: 0, VisitorCount: 0}, - {Day: 7, Hour: 2, VisitorCount: 0}, - {Day: 7, Hour: 4, VisitorCount: 0}, - {Day: 7, Hour: 6, VisitorCount: 0}, - {Day: 7, Hour: 8, VisitorCount: 0}, - {Day: 7, Hour: 10, VisitorCount: 0}, - {Day: 7, Hour: 12, VisitorCount: 0}, - {Day: 7, Hour: 14, VisitorCount: 0}, - {Day: 7, Hour: 16, VisitorCount: 0}, - {Day: 7, Hour: 18, VisitorCount: 0}, - {Day: 7, Hour: 20, VisitorCount: 0}, - {Day: 7, Hour: 22, VisitorCount: 0}, - } + err = dp2.ClickHouse(). + Create(&events). + Error + assert.NoError(t, err) - for i := range expectedReport { - assert.Equal( - t, - expectedReport[i], - report[i], - fmt.Sprintf("Time zone: %s, Day: %d, Hour: %d", timeZone, expectedReport[i].Day, expectedReport[i].Hour), - ) - } - } -} + var report Report -func TestMain(m *testing.M) { - dp = h.NewDepot() + report, err = Get(dp2, &filter.Filters{ + End: end, + SiteId: modelSite.Id, + Start: start, + TimeZone: &timeZone, + }) + assert.NoError(t, err) + + expectedReport := Report{ + {Day: 1, Hour: 0, VisitorCount: 3}, + {Day: 1, Hour: 2, VisitorCount: 0}, + {Day: 1, Hour: 4, VisitorCount: 0}, + {Day: 1, Hour: 6, VisitorCount: 0}, + {Day: 1, Hour: 8, VisitorCount: 0}, + {Day: 1, Hour: 10, VisitorCount: 0}, + {Day: 1, Hour: 12, VisitorCount: 0}, + {Day: 1, Hour: 14, VisitorCount: 0}, + {Day: 1, Hour: 16, VisitorCount: 0}, + {Day: 1, Hour: 18, VisitorCount: 0}, + {Day: 1, Hour: 20, VisitorCount: 0}, + {Day: 1, Hour: 22, VisitorCount: 0}, + {Day: 2, Hour: 0, VisitorCount: 0}, + {Day: 2, Hour: 2, VisitorCount: 0}, + {Day: 2, Hour: 4, VisitorCount: 0}, + {Day: 2, Hour: 6, VisitorCount: 0}, + {Day: 2, Hour: 8, VisitorCount: 0}, + {Day: 2, Hour: 10, VisitorCount: 0}, + {Day: 2, Hour: 12, VisitorCount: 5}, + {Day: 2, Hour: 14, VisitorCount: 0}, + {Day: 2, Hour: 16, VisitorCount: 0}, + {Day: 2, Hour: 18, VisitorCount: 0}, + {Day: 2, Hour: 20, VisitorCount: 0}, + {Day: 2, Hour: 22, VisitorCount: 0}, + {Day: 3, Hour: 0, VisitorCount: 0}, + {Day: 3, Hour: 2, VisitorCount: 0}, + {Day: 3, Hour: 4, VisitorCount: 0}, + {Day: 3, Hour: 6, VisitorCount: 0}, + {Day: 3, Hour: 8, VisitorCount: 0}, + {Day: 3, Hour: 10, VisitorCount: 0}, + {Day: 3, Hour: 12, VisitorCount: 0}, + {Day: 3, Hour: 14, VisitorCount: 0}, + {Day: 3, Hour: 16, VisitorCount: 0}, + {Day: 3, Hour: 18, VisitorCount: 0}, + {Day: 3, Hour: 20, VisitorCount: 0}, + {Day: 3, Hour: 22, VisitorCount: 0}, + {Day: 4, Hour: 0, VisitorCount: 0}, + {Day: 4, Hour: 2, VisitorCount: 0}, + {Day: 4, Hour: 4, VisitorCount: 0}, + {Day: 4, Hour: 6, VisitorCount: 0}, + {Day: 4, Hour: 8, VisitorCount: 0}, + {Day: 4, Hour: 10, VisitorCount: 0}, + {Day: 4, Hour: 12, VisitorCount: 0}, + {Day: 4, Hour: 14, VisitorCount: 0}, + {Day: 4, Hour: 16, VisitorCount: 0}, + {Day: 4, Hour: 18, VisitorCount: 0}, + {Day: 4, Hour: 20, VisitorCount: 0}, + {Day: 4, Hour: 22, VisitorCount: 0}, + {Day: 5, Hour: 0, VisitorCount: 0}, + {Day: 5, Hour: 2, VisitorCount: 0}, + {Day: 5, Hour: 4, VisitorCount: 0}, + {Day: 5, Hour: 6, VisitorCount: 0}, + {Day: 5, Hour: 8, VisitorCount: 0}, + {Day: 5, Hour: 10, VisitorCount: 0}, + {Day: 5, Hour: 12, VisitorCount: 0}, + {Day: 5, Hour: 14, VisitorCount: 0}, + {Day: 5, Hour: 16, VisitorCount: 0}, + {Day: 5, Hour: 18, VisitorCount: 0}, + {Day: 5, Hour: 20, VisitorCount: 0}, + {Day: 5, Hour: 22, VisitorCount: 0}, + {Day: 6, Hour: 0, VisitorCount: 0}, + {Day: 6, Hour: 2, VisitorCount: 0}, + {Day: 6, Hour: 4, VisitorCount: 0}, + {Day: 6, Hour: 6, VisitorCount: 0}, + {Day: 6, Hour: 8, VisitorCount: 0}, + {Day: 6, Hour: 10, VisitorCount: 0}, + {Day: 6, Hour: 12, VisitorCount: 0}, + {Day: 6, Hour: 14, VisitorCount: 0}, + {Day: 6, Hour: 16, VisitorCount: 0}, + {Day: 6, Hour: 18, VisitorCount: 0}, + {Day: 6, Hour: 20, VisitorCount: 0}, + {Day: 6, Hour: 22, VisitorCount: 0}, + {Day: 7, Hour: 0, VisitorCount: 0}, + {Day: 7, Hour: 2, VisitorCount: 0}, + {Day: 7, Hour: 4, VisitorCount: 0}, + {Day: 7, Hour: 6, VisitorCount: 0}, + {Day: 7, Hour: 8, VisitorCount: 0}, + {Day: 7, Hour: 10, VisitorCount: 0}, + {Day: 7, Hour: 12, VisitorCount: 0}, + {Day: 7, Hour: 14, VisitorCount: 0}, + {Day: 7, Hour: 16, VisitorCount: 0}, + {Day: 7, Hour: 18, VisitorCount: 0}, + {Day: 7, Hour: 20, VisitorCount: 0}, + {Day: 7, Hour: 22, VisitorCount: 0}, + } + + for i := range expectedReport { + assert.Equal( + t, + expectedReport[i], + report[i], + fmt.Sprintf("Time zone: %s, Day: %d, Hour: %d", timeZone, expectedReport[i].Day, expectedReport[i].Hour), + ) + } + } - os.Exit(m.Run()) + return errors.New("") + }) } diff --git a/backend/pkg/service/sitereport/utmterm/main_test.go b/backend/pkg/service/sitereport/utmterm/main_test.go index f437204..b8c7896 100644 --- a/backend/pkg/service/sitereport/utmterm/main_test.go +++ b/backend/pkg/service/sitereport/utmterm/main_test.go @@ -1,7 +1,6 @@ package utmterm import ( - "errors" "fmt" "math" "sort" @@ -130,20 +129,20 @@ func TestGet(t *testing.T) { assert.Equal(t, expectedReport, report) - err = dp2.ClickHouse(). - Exec("optimize table events_buffer"). - Error - assert.NoError(t, err) - - err = dp2.ClickHouse(). - Table("events"). - Where("site_id = ?", modelSite.Id). - Delete(nil). - Error - if err != nil { - return err - } - - return errors.New("") + //err = dp2.ClickHouse(). + // Exec("optimize table events_buffer"). + // Error + //assert.NoError(t, err) + // + //err = dp2.ClickHouse(). + // Table("events"). + // Where("site_id = ?", modelSite.Id). + // Delete(nil). + // Error + //if err != nil { + // return err + //} + + return nil }) }