| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222 |
- // SPDX-FileCopyrightText: Copyright The Miniflux Authors. All rights reserved.
- // SPDX-License-Identifier: Apache-2.0
- package config // import "miniflux.app/v2/internal/config"
- import (
- "bytes"
- "os"
- "reflect"
- "slices"
- "testing"
- "time"
- )
- func TestLogFileDefaultValue(t *testing.T) {
- os.Clearenv()
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- if opts.LogFile() != defaultLogFile {
- t.Fatalf(`Unexpected log file value, got %q`, opts.LogFile())
- }
- }
- func TestLogFileWithCustomFilename(t *testing.T) {
- os.Clearenv()
- os.Setenv("LOG_FILE", "foobar.log")
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- if opts.LogFile() != "foobar.log" {
- t.Fatalf(`Unexpected log file value, got %q`, opts.LogFile())
- }
- }
- func TestLogFileWithEmptyValue(t *testing.T) {
- os.Clearenv()
- os.Setenv("LOG_FILE", "")
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- if opts.LogFile() != defaultLogFile {
- t.Fatalf(`Unexpected log file value, got %q`, opts.LogFile())
- }
- }
- func TestLogLevelDefaultValue(t *testing.T) {
- os.Clearenv()
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- if opts.LogLevel() != defaultLogLevel {
- t.Fatalf(`Unexpected log level value, got %q`, opts.LogLevel())
- }
- }
- func TestLogLevelWithCustomValue(t *testing.T) {
- os.Clearenv()
- os.Setenv("LOG_LEVEL", "warning")
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- if opts.LogLevel() != "warning" {
- t.Fatalf(`Unexpected log level value, got %q`, opts.LogLevel())
- }
- }
- func TestLogLevelWithInvalidValue(t *testing.T) {
- os.Clearenv()
- os.Setenv("LOG_LEVEL", "invalid")
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- if opts.LogLevel() != defaultLogLevel {
- t.Fatalf(`Unexpected log level value, got %q`, opts.LogLevel())
- }
- }
- func TestLogDateTimeDefaultValue(t *testing.T) {
- os.Clearenv()
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- if opts.LogDateTime() != defaultLogDateTime {
- t.Fatalf(`Unexpected log date time value, got %v`, opts.LogDateTime())
- }
- }
- func TestLogDateTimeWithCustomValue(t *testing.T) {
- os.Clearenv()
- os.Setenv("LOG_DATETIME", "false")
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- if opts.LogDateTime() != false {
- t.Fatalf(`Unexpected log date time value, got %v`, opts.LogDateTime())
- }
- }
- func TestLogDateTimeWithInvalidValue(t *testing.T) {
- os.Clearenv()
- os.Setenv("LOG_DATETIME", "invalid")
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- if opts.LogDateTime() != defaultLogDateTime {
- t.Fatalf(`Unexpected log date time value, got %v`, opts.LogDateTime())
- }
- }
- func TestLogFormatDefaultValue(t *testing.T) {
- os.Clearenv()
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- if opts.LogFormat() != defaultLogFormat {
- t.Fatalf(`Unexpected log format value, got %q`, opts.LogFormat())
- }
- }
- func TestLogFormatWithCustomValue(t *testing.T) {
- os.Clearenv()
- os.Setenv("LOG_FORMAT", "json")
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- if opts.LogFormat() != "json" {
- t.Fatalf(`Unexpected log format value, got %q`, opts.LogFormat())
- }
- }
- func TestLogFormatWithInvalidValue(t *testing.T) {
- os.Clearenv()
- os.Setenv("LOG_FORMAT", "invalid")
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- if opts.LogFormat() != defaultLogFormat {
- t.Fatalf(`Unexpected log format value, got %q`, opts.LogFormat())
- }
- }
- func TestCustomBaseURL(t *testing.T) {
- os.Clearenv()
- os.Setenv("BASE_URL", "http://example.org")
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- if opts.BaseURL() != "http://example.org" {
- t.Fatalf(`Unexpected base URL, got "%s"`, opts.BaseURL())
- }
- if opts.RootURL() != "http://example.org" {
- t.Fatalf(`Unexpected root URL, got "%s"`, opts.RootURL())
- }
- if opts.BasePath() != "" {
- t.Fatalf(`Unexpected base path, got "%s"`, opts.BasePath())
- }
- }
- func TestCustomBaseURLWithTrailingSlash(t *testing.T) {
- os.Clearenv()
- os.Setenv("BASE_URL", "http://example.org/folder/")
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- if opts.BaseURL() != "http://example.org/folder" {
- t.Fatalf(`Unexpected base URL, got "%s"`, opts.BaseURL())
- }
- if opts.RootURL() != "http://example.org" {
- t.Fatalf(`Unexpected root URL, got "%s"`, opts.RootURL())
- }
- if opts.BasePath() != "/folder" {
- t.Fatalf(`Unexpected base path, got "%s"`, opts.BasePath())
- }
- }
- func TestCustomBaseURLWithCustomPort(t *testing.T) {
- os.Clearenv()
- os.Setenv("BASE_URL", "http://example.org:88/folder/")
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- if opts.BaseURL() != "http://example.org:88/folder" {
- t.Fatalf(`Unexpected base URL, got "%s"`, opts.BaseURL())
- }
- if opts.RootURL() != "http://example.org:88" {
- t.Fatalf(`Unexpected root URL, got "%s"`, opts.RootURL())
- }
- if opts.BasePath() != "/folder" {
- t.Fatalf(`Unexpected base path, got "%s"`, opts.BasePath())
- }
- }
- func TestBaseURLWithoutScheme(t *testing.T) {
- os.Clearenv()
- os.Setenv("BASE_URL", "example.org/folder/")
- _, err := NewParser().ParseEnvironmentVariables()
- if err == nil {
- t.Fatalf(`Parsing must fail`)
- }
- }
- func TestBaseURLWithInvalidScheme(t *testing.T) {
- os.Clearenv()
- os.Setenv("BASE_URL", "ftp://example.org/folder/")
- _, err := NewParser().ParseEnvironmentVariables()
- if err == nil {
- t.Fatalf(`Parsing must fail`)
- }
- }
- func TestInvalidBaseURL(t *testing.T) {
- os.Clearenv()
- os.Setenv("BASE_URL", "http://example|org")
- _, err := NewParser().ParseEnvironmentVariables()
- if err == nil {
- t.Fatalf(`Parsing must fail`)
- }
- }
- func TestDefaultBaseURL(t *testing.T) {
- os.Clearenv()
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- if opts.BaseURL() != defaultBaseURL {
- t.Fatalf(`Unexpected base URL, got "%s"`, opts.BaseURL())
- }
- if opts.RootURL() != defaultBaseURL {
- t.Fatalf(`Unexpected root URL, got "%s"`, opts.RootURL())
- }
- if opts.BasePath() != "" {
- t.Fatalf(`Unexpected base path, got "%s"`, opts.BasePath())
- }
- }
- func TestDatabaseURL(t *testing.T) {
- os.Clearenv()
- os.Setenv("DATABASE_URL", "foobar")
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- expected := "foobar"
- result := opts.DatabaseURL()
- if result != expected {
- t.Errorf(`Unexpected DATABASE_URL value, got %q instead of %q`, result, expected)
- }
- if opts.IsDefaultDatabaseURL() {
- t.Errorf(`This is not the default database URL and it should returns false`)
- }
- }
- func TestDefaultDatabaseURLValue(t *testing.T) {
- os.Clearenv()
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- expected := defaultDatabaseURL
- result := opts.DatabaseURL()
- if result != expected {
- t.Errorf(`Unexpected DATABASE_URL value, got %q instead of %q`, result, expected)
- }
- if !opts.IsDefaultDatabaseURL() {
- t.Errorf(`This is the default database URL and it should returns true`)
- }
- }
- func TestDefaultDatabaseMaxConnsValue(t *testing.T) {
- os.Clearenv()
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- expected := defaultDatabaseMaxConns
- result := opts.DatabaseMaxConns()
- if result != expected {
- t.Fatalf(`Unexpected DATABASE_MAX_CONNS value, got %v instead of %v`, result, expected)
- }
- }
- func TestDatabaseMaxConns(t *testing.T) {
- os.Clearenv()
- os.Setenv("DATABASE_MAX_CONNS", "42")
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- expected := 42
- result := opts.DatabaseMaxConns()
- if result != expected {
- t.Fatalf(`Unexpected DATABASE_MAX_CONNS value, got %v instead of %v`, result, expected)
- }
- }
- func TestDefaultDatabaseMinConnsValue(t *testing.T) {
- os.Clearenv()
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- expected := defaultDatabaseMinConns
- result := opts.DatabaseMinConns()
- if result != expected {
- t.Fatalf(`Unexpected DATABASE_MIN_CONNS value, got %v instead of %v`, result, expected)
- }
- }
- func TestDatabaseMinConns(t *testing.T) {
- os.Clearenv()
- os.Setenv("DATABASE_MIN_CONNS", "42")
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- expected := 42
- result := opts.DatabaseMinConns()
- if result != expected {
- t.Fatalf(`Unexpected DATABASE_MIN_CONNS value, got %v instead of %v`, result, expected)
- }
- }
- func TestListenAddr(t *testing.T) {
- os.Clearenv()
- os.Setenv("LISTEN_ADDR", "foobar")
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- expected := []string{"foobar"}
- result := opts.ListenAddr()
- if !reflect.DeepEqual(result, expected) {
- t.Fatalf(`Unexpected LISTEN_ADDR value, got %v instead of %v`, result, expected)
- }
- }
- func TestListenAddrWithPortDefined(t *testing.T) {
- os.Clearenv()
- os.Setenv("PORT", "3000")
- os.Setenv("LISTEN_ADDR", "foobar") // This should be overridden by PORT
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- expected := []string{":3000"}
- result := opts.ListenAddr()
- if !reflect.DeepEqual(result, expected) {
- t.Fatalf(`Unexpected LISTEN_ADDR value when PORT is set, got %v instead of %v`, result, expected)
- }
- }
- func TestDefaultListenAddrValue(t *testing.T) {
- os.Clearenv()
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- expected := []string{defaultListenAddr}
- result := opts.ListenAddr()
- if !reflect.DeepEqual(result, expected) {
- t.Fatalf(`Unexpected default LISTEN_ADDR value, got %v instead of %v`, result, expected)
- }
- }
- func TestCertFile(t *testing.T) {
- os.Clearenv()
- os.Setenv("CERT_FILE", "foobar")
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- expected := "foobar"
- result := opts.CertFile()
- if result != expected {
- t.Fatalf(`Unexpected CERT_FILE value, got %q instead of %q`, result, expected)
- }
- }
- func TestDefaultCertFileValue(t *testing.T) {
- os.Clearenv()
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- expected := defaultCertFile
- result := opts.CertFile()
- if result != expected {
- t.Fatalf(`Unexpected CERT_FILE value, got %q instead of %q`, result, expected)
- }
- }
- func TestKeyFile(t *testing.T) {
- os.Clearenv()
- os.Setenv("KEY_FILE", "foobar")
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- expected := "foobar"
- result := opts.CertKeyFile()
- if result != expected {
- t.Fatalf(`Unexpected KEY_FILE value, got %q instead of %q`, result, expected)
- }
- }
- func TestDefaultKeyFileValue(t *testing.T) {
- os.Clearenv()
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- expected := defaultKeyFile
- result := opts.CertKeyFile()
- if result != expected {
- t.Fatalf(`Unexpected KEY_FILE value, got %q instead of %q`, result, expected)
- }
- }
- func TestCertDomain(t *testing.T) {
- os.Clearenv()
- os.Setenv("CERT_DOMAIN", "example.org")
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- expected := "example.org"
- result := opts.CertDomain()
- if result != expected {
- t.Fatalf(`Unexpected CERT_DOMAIN value, got %q instead of %q`, result, expected)
- }
- }
- func TestDefaultCertDomainValue(t *testing.T) {
- os.Clearenv()
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- expected := defaultCertDomain
- result := opts.CertDomain()
- if result != expected {
- t.Fatalf(`Unexpected CERT_DOMAIN value, got %q instead of %q`, result, expected)
- }
- }
- func TestDefaultCleanupFrequencyHoursValue(t *testing.T) {
- os.Clearenv()
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- expected := defaultCleanupFrequencyHours
- result := opts.CleanupFrequencyHours()
- if result != expected {
- t.Fatalf(`Unexpected CLEANUP_FREQUENCY_HOURS value, got %v instead of %v`, result, expected)
- }
- }
- func TestCleanupFrequencyHours(t *testing.T) {
- os.Clearenv()
- os.Setenv("CLEANUP_FREQUENCY_HOURS", "42")
- os.Setenv("CLEANUP_FREQUENCY", "19")
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- expected := 42
- result := opts.CleanupFrequencyHours()
- if result != expected {
- t.Fatalf(`Unexpected CLEANUP_FREQUENCY_HOURS value, got %v instead of %v`, result, expected)
- }
- }
- func TestDefaultCleanupArchiveReadDaysValue(t *testing.T) {
- os.Clearenv()
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- expected := 60
- result := opts.CleanupArchiveReadDays()
- if result != expected {
- t.Fatalf(`Unexpected CLEANUP_ARCHIVE_READ_DAYS value, got %v instead of %v`, result, expected)
- }
- }
- func TestCleanupArchiveReadDays(t *testing.T) {
- os.Clearenv()
- os.Setenv("CLEANUP_ARCHIVE_READ_DAYS", "7")
- os.Setenv("ARCHIVE_READ_DAYS", "19")
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- expected := 7
- result := opts.CleanupArchiveReadDays()
- if result != expected {
- t.Fatalf(`Unexpected CLEANUP_ARCHIVE_READ_DAYS value, got %v instead of %v`, result, expected)
- }
- }
- func TestDefaultCleanupRemoveSessionsDaysValue(t *testing.T) {
- os.Clearenv()
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- expected := 30
- result := opts.CleanupRemoveSessionsDays()
- if result != expected {
- t.Fatalf(`Unexpected CLEANUP_REMOVE_SESSIONS_DAYS value, got %v instead of %v`, result, expected)
- }
- }
- func TestCleanupRemoveSessionsDays(t *testing.T) {
- os.Clearenv()
- os.Setenv("CLEANUP_REMOVE_SESSIONS_DAYS", "7")
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- expected := 7
- result := opts.CleanupRemoveSessionsDays()
- if result != expected {
- t.Fatalf(`Unexpected CLEANUP_REMOVE_SESSIONS_DAYS value, got %v instead of %v`, result, expected)
- }
- }
- func TestDefaultWorkerPoolSizeValue(t *testing.T) {
- os.Clearenv()
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- expected := defaultWorkerPoolSize
- result := opts.WorkerPoolSize()
- if result != expected {
- t.Fatalf(`Unexpected WORKER_POOL_SIZE value, got %v instead of %v`, result, expected)
- }
- }
- func TestWorkerPoolSize(t *testing.T) {
- os.Clearenv()
- os.Setenv("WORKER_POOL_SIZE", "42")
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- expected := 42
- result := opts.WorkerPoolSize()
- if result != expected {
- t.Fatalf(`Unexpected WORKER_POOL_SIZE value, got %v instead of %v`, result, expected)
- }
- }
- func TestDefaultPollingFrequencyValue(t *testing.T) {
- os.Clearenv()
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- expected := defaultPollingFrequency
- result := opts.PollingFrequency()
- if result != expected {
- t.Fatalf(`Unexpected POLLING_FREQUENCY value, got %v instead of %v`, result, expected)
- }
- }
- func TestPollingFrequency(t *testing.T) {
- os.Clearenv()
- os.Setenv("POLLING_FREQUENCY", "42")
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- expected := 42
- result := opts.PollingFrequency()
- if result != expected {
- t.Fatalf(`Unexpected POLLING_FREQUENCY value, got %v instead of %v`, result, expected)
- }
- }
- func TestDefaultForceRefreshInterval(t *testing.T) {
- os.Clearenv()
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- expected := defaultForceRefreshInterval
- result := opts.ForceRefreshInterval()
- if result != expected {
- t.Fatalf(`Unexpected FORCE_REFRESH_INTERVAL value, got %v instead of %v`, result, expected)
- }
- }
- func TestForceRefreshInterval(t *testing.T) {
- os.Clearenv()
- os.Setenv("FORCE_REFRESH_INTERVAL", "42")
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- expected := 42
- result := opts.ForceRefreshInterval()
- if result != expected {
- t.Fatalf(`Unexpected FORCE_REFRESH_INTERVAL value, got %v instead of %v`, result, expected)
- }
- }
- func TestDefaultBatchSizeValue(t *testing.T) {
- os.Clearenv()
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- expected := defaultBatchSize
- result := opts.BatchSize()
- if result != expected {
- t.Fatalf(`Unexpected BATCH_SIZE value, got %v instead of %v`, result, expected)
- }
- }
- func TestBatchSize(t *testing.T) {
- os.Clearenv()
- os.Setenv("BATCH_SIZE", "42")
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- expected := 42
- result := opts.BatchSize()
- if result != expected {
- t.Fatalf(`Unexpected BATCH_SIZE value, got %v instead of %v`, result, expected)
- }
- }
- func TestDefaultPollingSchedulerValue(t *testing.T) {
- os.Clearenv()
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- expected := defaultPollingScheduler
- result := opts.PollingScheduler()
- if result != expected {
- t.Fatalf(`Unexpected POLLING_SCHEDULER value, got %v instead of %v`, result, expected)
- }
- }
- func TestPollingScheduler(t *testing.T) {
- os.Clearenv()
- os.Setenv("POLLING_SCHEDULER", "entry_count_based")
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- expected := "entry_count_based"
- result := opts.PollingScheduler()
- if result != expected {
- t.Fatalf(`Unexpected POLLING_SCHEDULER value, got %v instead of %v`, result, expected)
- }
- }
- func TestDefaultSchedulerEntryFrequencyMaxIntervalValue(t *testing.T) {
- os.Clearenv()
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- expected := defaultSchedulerEntryFrequencyMaxInterval
- result := opts.SchedulerEntryFrequencyMaxInterval()
- if result != expected {
- t.Fatalf(`Unexpected SCHEDULER_ENTRY_FREQUENCY_MAX_INTERVAL value, got %v instead of %v`, result, expected)
- }
- }
- func TestSchedulerEntryFrequencyMaxInterval(t *testing.T) {
- os.Clearenv()
- os.Setenv("SCHEDULER_ENTRY_FREQUENCY_MAX_INTERVAL", "30")
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- expected := 30 * time.Minute
- result := opts.SchedulerEntryFrequencyMaxInterval()
- if result != expected {
- t.Fatalf(`Unexpected SCHEDULER_ENTRY_FREQUENCY_MAX_INTERVAL value, got %v instead of %v`, result, expected)
- }
- sorted := opts.SortedOptions(false)
- i := slices.IndexFunc(sorted, func(opt *option) bool {
- return opt.Key == "SCHEDULER_ENTRY_FREQUENCY_MAX_INTERVAL"
- })
- expectedSerialized := 30
- if got := sorted[i].Value; got != expectedSerialized {
- t.Fatalf(`Unexpected value in option output, got %q instead of %q`, got, expectedSerialized)
- }
- }
- func TestDefaultSchedulerEntryFrequencyMinIntervalValue(t *testing.T) {
- os.Clearenv()
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- expected := defaultSchedulerEntryFrequencyMinInterval
- result := opts.SchedulerEntryFrequencyMinInterval()
- if result != expected {
- t.Fatalf(`Unexpected SCHEDULER_ENTRY_FREQUENCY_MIN_INTERVAL value, got %v instead of %v`, result, expected)
- }
- }
- func TestSchedulerEntryFrequencyMinInterval(t *testing.T) {
- os.Clearenv()
- os.Setenv("SCHEDULER_ENTRY_FREQUENCY_MIN_INTERVAL", "30")
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- expected := 30 * time.Minute
- result := opts.SchedulerEntryFrequencyMinInterval()
- if result != expected {
- t.Fatalf(`Unexpected SCHEDULER_ENTRY_FREQUENCY_MIN_INTERVAL value, got %v instead of %v`, result, expected)
- }
- sorted := opts.SortedOptions(false)
- i := slices.IndexFunc(sorted, func(opt *option) bool {
- return opt.Key == "SCHEDULER_ENTRY_FREQUENCY_MIN_INTERVAL"
- })
- expectedSerialized := 30
- if got := sorted[i].Value; got != expectedSerialized {
- t.Fatalf(`Unexpected value in option output, got %q instead of %q`, got, expectedSerialized)
- }
- }
- func TestDefaultSchedulerEntryFrequencyFactorValue(t *testing.T) {
- os.Clearenv()
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- expected := defaultSchedulerEntryFrequencyFactor
- result := opts.SchedulerEntryFrequencyFactor()
- if result != expected {
- t.Fatalf(`Unexpected SCHEDULER_ENTRY_FREQUENCY_FACTOR value, got %v instead of %v`, result, expected)
- }
- }
- func TestSchedulerEntryFrequencyFactor(t *testing.T) {
- os.Clearenv()
- os.Setenv("SCHEDULER_ENTRY_FREQUENCY_FACTOR", "2")
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- expected := 2
- result := opts.SchedulerEntryFrequencyFactor()
- if result != expected {
- t.Fatalf(`Unexpected SCHEDULER_ENTRY_FREQUENCY_FACTOR value, got %v instead of %v`, result, expected)
- }
- }
- func TestDefaultSchedulerRoundRobinValue(t *testing.T) {
- os.Clearenv()
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- expected := defaultSchedulerRoundRobinMinInterval
- result := opts.SchedulerRoundRobinMinInterval()
- if result != expected {
- t.Fatalf(`Unexpected SCHEDULER_ROUND_ROBIN_MIN_INTERVAL value, got %v instead of %v`, result, expected)
- }
- }
- func TestSchedulerRoundRobin(t *testing.T) {
- os.Clearenv()
- os.Setenv("SCHEDULER_ROUND_ROBIN_MIN_INTERVAL", "15")
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- expected := 15 * time.Minute
- result := opts.SchedulerRoundRobinMinInterval()
- if result != expected {
- t.Fatalf(`Unexpected SCHEDULER_ROUND_ROBIN_MIN_INTERVAL value, got %v instead of %v`, result, expected)
- }
- sorted := opts.SortedOptions(false)
- i := slices.IndexFunc(sorted, func(opt *option) bool {
- return opt.Key == "SCHEDULER_ROUND_ROBIN_MIN_INTERVAL"
- })
- expectedSerialized := 15
- if got := sorted[i].Value; got != expectedSerialized {
- t.Fatalf(`Unexpected value in option output, got %q instead of %q`, got, expectedSerialized)
- }
- }
- func TestDefaultSchedulerRoundRobinMaxIntervalValue(t *testing.T) {
- os.Clearenv()
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- expected := defaultSchedulerRoundRobinMaxInterval
- result := opts.SchedulerRoundRobinMaxInterval()
- if result != expected {
- t.Fatalf(`Unexpected SCHEDULER_ROUND_ROBIN_MAX_INTERVAL value, got %v instead of %v`, result, expected)
- }
- }
- func TestSchedulerRoundRobinMaxInterval(t *testing.T) {
- os.Clearenv()
- os.Setenv("SCHEDULER_ROUND_ROBIN_MAX_INTERVAL", "150")
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- expected := 150 * time.Minute
- result := opts.SchedulerRoundRobinMaxInterval()
- if result != expected {
- t.Fatalf(`Unexpected SCHEDULER_ROUND_ROBIN_MAX_INTERVAL value, got %v instead of %v`, result, expected)
- }
- sorted := opts.SortedOptions(false)
- i := slices.IndexFunc(sorted, func(opt *option) bool {
- return opt.Key == "SCHEDULER_ROUND_ROBIN_MAX_INTERVAL"
- })
- expectedSerialized := 150
- if got := sorted[i].Value; got != expectedSerialized {
- t.Fatalf(`Unexpected value in option output, got %q instead of %q`, got, expectedSerialized)
- }
- }
- func TestPollingParsingErrorLimit(t *testing.T) {
- os.Clearenv()
- os.Setenv("POLLING_PARSING_ERROR_LIMIT", "100")
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- expected := 100
- result := opts.PollingParsingErrorLimit()
- if result != expected {
- t.Fatalf(`Unexpected POLLING_SCHEDULER value, got %v instead of %v`, result, expected)
- }
- }
- func TestOAuth2UserCreationWhenUnset(t *testing.T) {
- os.Clearenv()
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- expected := false
- result := opts.IsOAuth2UserCreationAllowed()
- if result != expected {
- t.Fatalf(`Unexpected OAUTH2_USER_CREATION value, got %v instead of %v`, result, expected)
- }
- }
- func TestOAuth2UserCreationAdmin(t *testing.T) {
- os.Clearenv()
- os.Setenv("OAUTH2_USER_CREATION", "1")
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- expected := true
- result := opts.IsOAuth2UserCreationAllowed()
- if result != expected {
- t.Fatalf(`Unexpected OAUTH2_USER_CREATION value, got %v instead of %v`, result, expected)
- }
- }
- func TestOAuth2ClientID(t *testing.T) {
- os.Clearenv()
- os.Setenv("OAUTH2_CLIENT_ID", "foobar")
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- expected := "foobar"
- result := opts.OAuth2ClientID()
- if result != expected {
- t.Fatalf(`Unexpected OAUTH2_CLIENT_ID value, got %q instead of %q`, result, expected)
- }
- }
- func TestDefaultOAuth2ClientIDValue(t *testing.T) {
- os.Clearenv()
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- expected := defaultOAuth2ClientID
- result := opts.OAuth2ClientID()
- if result != expected {
- t.Fatalf(`Unexpected OAUTH2_CLIENT_ID value, got %q instead of %q`, result, expected)
- }
- }
- func TestOAuth2ClientSecret(t *testing.T) {
- os.Clearenv()
- os.Setenv("OAUTH2_CLIENT_SECRET", "secret")
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- expected := "secret"
- result := opts.OAuth2ClientSecret()
- if result != expected {
- t.Fatalf(`Unexpected OAUTH2_CLIENT_SECRET value, got %q instead of %q`, result, expected)
- }
- }
- func TestDefaultOAuth2ClientSecretValue(t *testing.T) {
- os.Clearenv()
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- expected := defaultOAuth2ClientSecret
- result := opts.OAuth2ClientSecret()
- if result != expected {
- t.Fatalf(`Unexpected OAUTH2_CLIENT_SECRET value, got %q instead of %q`, result, expected)
- }
- }
- func TestOAuth2RedirectURL(t *testing.T) {
- os.Clearenv()
- os.Setenv("OAUTH2_REDIRECT_URL", "http://example.org")
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- expected := "http://example.org"
- result := opts.OAuth2RedirectURL()
- if result != expected {
- t.Fatalf(`Unexpected OAUTH2_REDIRECT_URL value, got %q instead of %q`, result, expected)
- }
- }
- func TestDefaultOAuth2RedirectURLValue(t *testing.T) {
- os.Clearenv()
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- expected := defaultOAuth2RedirectURL
- result := opts.OAuth2RedirectURL()
- if result != expected {
- t.Fatalf(`Unexpected OAUTH2_REDIRECT_URL value, got %q instead of %q`, result, expected)
- }
- }
- func TestOAuth2OIDCDiscoveryEndpoint(t *testing.T) {
- os.Clearenv()
- os.Setenv("OAUTH2_OIDC_DISCOVERY_ENDPOINT", "http://example.org")
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- expected := "http://example.org"
- result := opts.OIDCDiscoveryEndpoint()
- if result != expected {
- t.Fatalf(`Unexpected OAUTH2_OIDC_DISCOVERY_ENDPOINT value, got %q instead of %q`, result, expected)
- }
- }
- func TestDefaultOIDCDiscoveryEndpointValue(t *testing.T) {
- os.Clearenv()
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- expected := defaultOAuth2OidcDiscoveryEndpoint
- result := opts.OIDCDiscoveryEndpoint()
- if result != expected {
- t.Fatalf(`Unexpected OAUTH2_OIDC_DISCOVERY_ENDPOINT value, got %q instead of %q`, result, expected)
- }
- }
- func TestOAuth2Provider(t *testing.T) {
- os.Clearenv()
- os.Setenv("OAUTH2_PROVIDER", "google")
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- expected := "google"
- result := opts.OAuth2Provider()
- if result != expected {
- t.Fatalf(`Unexpected OAUTH2_PROVIDER value, got %q instead of %q`, result, expected)
- }
- }
- func TestDefaultOAuth2ProviderValue(t *testing.T) {
- os.Clearenv()
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- expected := defaultOAuth2Provider
- result := opts.OAuth2Provider()
- if result != expected {
- t.Fatalf(`Unexpected OAUTH2_PROVIDER value, got %q instead of %q`, result, expected)
- }
- }
- func TestHSTSWhenUnset(t *testing.T) {
- os.Clearenv()
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- expected := true
- result := opts.HasHSTS()
- if result != expected {
- t.Fatalf(`Unexpected DISABLE_HSTS value, got %v instead of %v`, result, expected)
- }
- }
- func TestHSTS(t *testing.T) {
- os.Clearenv()
- os.Setenv("DISABLE_HSTS", "1")
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- expected := false
- result := opts.HasHSTS()
- if result != expected {
- t.Fatalf(`Unexpected DISABLE_HSTS value, got %v instead of %v`, result, expected)
- }
- }
- func TestDisableHTTPServiceWhenUnset(t *testing.T) {
- os.Clearenv()
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- expected := true
- result := opts.HasHTTPService()
- if result != expected {
- t.Fatalf(`Unexpected DISABLE_HTTP_SERVICE value, got %v instead of %v`, result, expected)
- }
- }
- func TestDisableHTTPService(t *testing.T) {
- os.Clearenv()
- os.Setenv("DISABLE_HTTP_SERVICE", "1")
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- expected := false
- result := opts.HasHTTPService()
- if result != expected {
- t.Fatalf(`Unexpected DISABLE_HTTP_SERVICE value, got %v instead of %v`, result, expected)
- }
- }
- func TestDisableSchedulerServiceWhenUnset(t *testing.T) {
- os.Clearenv()
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- expected := true
- result := opts.HasSchedulerService()
- if result != expected {
- t.Fatalf(`Unexpected DISABLE_SCHEDULER_SERVICE value, got %v instead of %v`, result, expected)
- }
- }
- func TestDisableSchedulerService(t *testing.T) {
- os.Clearenv()
- os.Setenv("DISABLE_SCHEDULER_SERVICE", "1")
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- expected := false
- result := opts.HasSchedulerService()
- if result != expected {
- t.Fatalf(`Unexpected DISABLE_SCHEDULER_SERVICE value, got %v instead of %v`, result, expected)
- }
- }
- func TestRunMigrationsWhenUnset(t *testing.T) {
- os.Clearenv()
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- expected := false
- result := opts.RunMigrations()
- if result != expected {
- t.Fatalf(`Unexpected RUN_MIGRATIONS value, got %v instead of %v`, result, expected)
- }
- }
- func TestRunMigrations(t *testing.T) {
- os.Clearenv()
- os.Setenv("RUN_MIGRATIONS", "yes")
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- expected := true
- result := opts.RunMigrations()
- if result != expected {
- t.Fatalf(`Unexpected RUN_MIGRATIONS value, got %v instead of %v`, result, expected)
- }
- }
- func TestCreateAdminWhenUnset(t *testing.T) {
- os.Clearenv()
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- expected := false
- result := opts.CreateAdmin()
- if result != expected {
- t.Fatalf(`Unexpected CREATE_ADMIN value, got %v instead of %v`, result, expected)
- }
- }
- func TestCreateAdmin(t *testing.T) {
- os.Clearenv()
- os.Setenv("CREATE_ADMIN", "true")
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- expected := true
- result := opts.CreateAdmin()
- if result != expected {
- t.Fatalf(`Unexpected CREATE_ADMIN value, got %v instead of %v`, result, expected)
- }
- }
- func TestMediaProxyMode(t *testing.T) {
- os.Clearenv()
- os.Setenv("MEDIA_PROXY_MODE", "all")
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- expected := "all"
- result := opts.MediaProxyMode()
- if result != expected {
- t.Fatalf(`Unexpected MEDIA_PROXY_MODE value, got %q instead of %q`, result, expected)
- }
- }
- func TestDefaultMediaProxyModeValue(t *testing.T) {
- os.Clearenv()
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- expected := defaultMediaProxyMode
- result := opts.MediaProxyMode()
- if result != expected {
- t.Fatalf(`Unexpected MEDIA_PROXY_MODE value, got %q instead of %q`, result, expected)
- }
- }
- func TestMediaProxyResourceTypes(t *testing.T) {
- os.Clearenv()
- os.Setenv("MEDIA_PROXY_RESOURCE_TYPES", "image,audio")
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- expected := []string{"audio", "image"}
- if len(expected) != len(opts.MediaProxyResourceTypes()) {
- t.Fatalf(`Unexpected MEDIA_PROXY_RESOURCE_TYPES value, got %v instead of %v`, opts.MediaProxyResourceTypes(), expected)
- }
- resultMap := make(map[string]bool)
- for _, mediaType := range opts.MediaProxyResourceTypes() {
- resultMap[mediaType] = true
- }
- for _, mediaType := range expected {
- if !resultMap[mediaType] {
- t.Fatalf(`Unexpected MEDIA_PROXY_RESOURCE_TYPES value, got %v instead of %v`, opts.MediaProxyResourceTypes(), expected)
- }
- }
- }
- func TestMediaProxyResourceTypesWithDuplicatedValues(t *testing.T) {
- os.Clearenv()
- os.Setenv("MEDIA_PROXY_RESOURCE_TYPES", "image,audio, image")
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- expected := []string{"audio", "image"}
- if len(expected) != len(opts.MediaProxyResourceTypes()) {
- t.Fatalf(`Unexpected MEDIA_PROXY_RESOURCE_TYPES value, got %v instead of %v`, opts.MediaProxyResourceTypes(), expected)
- }
- resultMap := make(map[string]bool)
- for _, mediaType := range opts.MediaProxyResourceTypes() {
- resultMap[mediaType] = true
- }
- for _, mediaType := range expected {
- if !resultMap[mediaType] {
- t.Fatalf(`Unexpected MEDIA_PROXY_RESOURCE_TYPES value, got %v instead of %v`, opts.MediaProxyResourceTypes(), expected)
- }
- }
- }
- func TestDefaultMediaProxyResourceTypes(t *testing.T) {
- os.Clearenv()
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- expected := []string{"image"}
- if len(expected) != len(opts.MediaProxyResourceTypes()) {
- t.Fatalf(`Unexpected MEDIA_PROXY_RESOURCE_TYPES value, got %v instead of %v`, opts.MediaProxyResourceTypes(), expected)
- }
- resultMap := make(map[string]bool)
- for _, mediaType := range opts.MediaProxyResourceTypes() {
- resultMap[mediaType] = true
- }
- for _, mediaType := range expected {
- if !resultMap[mediaType] {
- t.Fatalf(`Unexpected MEDIA_PROXY_RESOURCE_TYPES value, got %v instead of %v`, opts.MediaProxyResourceTypes(), expected)
- }
- }
- }
- func TestMediaProxyHTTPClientTimeout(t *testing.T) {
- os.Clearenv()
- os.Setenv("MEDIA_PROXY_HTTP_CLIENT_TIMEOUT", "24")
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- expected := 24 * time.Second
- result := opts.MediaProxyHTTPClientTimeout()
- if result != expected {
- t.Fatalf(`Unexpected MEDIA_PROXY_HTTP_CLIENT_TIMEOUT value, got %d instead of %d`, result, expected)
- }
- sorted := opts.SortedOptions(false)
- i := slices.IndexFunc(sorted, func(opt *option) bool {
- return opt.Key == "MEDIA_PROXY_HTTP_CLIENT_TIMEOUT"
- })
- expectedSerialized := 24
- if got := sorted[i].Value; got != expectedSerialized {
- t.Fatalf(`Unexpected value in option output, got %q instead of %q`, got, expectedSerialized)
- }
- }
- func TestDefaultMediaProxyHTTPClientTimeoutValue(t *testing.T) {
- os.Clearenv()
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- expected := defaultMediaProxyHTTPClientTimeout
- result := opts.MediaProxyHTTPClientTimeout()
- if result != expected {
- t.Fatalf(`Unexpected MEDIA_PROXY_HTTP_CLIENT_TIMEOUT value, got %d instead of %d`, result, expected)
- }
- sorted := opts.SortedOptions(false)
- i := slices.IndexFunc(sorted, func(opt *option) bool {
- return opt.Key == "MEDIA_PROXY_HTTP_CLIENT_TIMEOUT"
- })
- expectedSerialized := int(defaultMediaProxyHTTPClientTimeout / time.Second)
- if got := sorted[i].Value; got != expectedSerialized {
- t.Fatalf(`Unexpected value in option output, got %q instead of %q`, got, expectedSerialized)
- }
- }
- func TestMediaProxyCustomURL(t *testing.T) {
- os.Clearenv()
- os.Setenv("MEDIA_PROXY_CUSTOM_URL", "http://example.org/proxy")
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- expected := "http://example.org/proxy"
- result := opts.MediaCustomProxyURL()
- if result == nil || result.String() != expected {
- t.Fatalf(`Unexpected MEDIA_PROXY_CUSTOM_URL value, got %q instead of %q`, result, expected)
- }
- }
- func TestMediaProxyPrivateKey(t *testing.T) {
- os.Clearenv()
- os.Setenv("MEDIA_PROXY_PRIVATE_KEY", "foobar")
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- expected := []byte("foobar")
- result := opts.MediaProxyPrivateKey()
- if !bytes.Equal(result, expected) {
- t.Fatalf(`Unexpected MEDIA_PROXY_PRIVATE_KEY value, got %q instead of %q`, result, expected)
- }
- }
- func TestHTTPSOff(t *testing.T) {
- os.Clearenv()
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- if opts.HTTPS {
- t.Fatalf(`Unexpected HTTPS value, got "%v"`, opts.HTTPS)
- }
- }
- func TestHTTPSOn(t *testing.T) {
- os.Clearenv()
- os.Setenv("HTTPS", "on")
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- if !opts.HTTPS {
- t.Fatalf(`Unexpected HTTPS value, got "%v"`, opts.HTTPS)
- }
- }
- func TestHTTPClientTimeout(t *testing.T) {
- os.Clearenv()
- os.Setenv("HTTP_CLIENT_TIMEOUT", "42")
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- expected := 42 * time.Second
- result := opts.HTTPClientTimeout()
- if result != expected {
- t.Fatalf(`Unexpected HTTP_CLIENT_TIMEOUT value, got %d instead of %d`, result, expected)
- }
- sorted := opts.SortedOptions(false)
- i := slices.IndexFunc(sorted, func(opt *option) bool {
- return opt.Key == "HTTP_CLIENT_TIMEOUT"
- })
- expectedSerialized := 42
- if got := sorted[i].Value; got != expectedSerialized {
- t.Fatalf(`Unexpected value in option output, got %q instead of %q`, got, expectedSerialized)
- }
- }
- func TestDefaultHTTPClientTimeoutValue(t *testing.T) {
- os.Clearenv()
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- expected := defaultHTTPClientTimeout
- result := opts.HTTPClientTimeout()
- if result != expected {
- t.Fatalf(`Unexpected HTTP_CLIENT_TIMEOUT value, got %d instead of %d`, result, expected)
- }
- }
- func TestHTTPClientMaxBodySize(t *testing.T) {
- os.Clearenv()
- os.Setenv("HTTP_CLIENT_MAX_BODY_SIZE", "42")
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- expected := int64(42 * 1024 * 1024)
- result := opts.HTTPClientMaxBodySize()
- if result != expected {
- t.Fatalf(`Unexpected HTTP_CLIENT_MAX_BODY_SIZE value, got %d instead of %d`, result, expected)
- }
- }
- func TestDefaultHTTPClientMaxBodySizeValue(t *testing.T) {
- os.Clearenv()
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- expected := int64(defaultHTTPClientMaxBodySize * 1024 * 1024)
- result := opts.HTTPClientMaxBodySize()
- if result != expected {
- t.Fatalf(`Unexpected HTTP_CLIENT_MAX_BODY_SIZE value, got %d instead of %d`, result, expected)
- }
- }
- func TestHTTPServerTimeout(t *testing.T) {
- os.Clearenv()
- os.Setenv("HTTP_SERVER_TIMEOUT", "342")
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- expected := 342 * time.Second
- result := opts.HTTPServerTimeout()
- if result != expected {
- t.Fatalf(`Unexpected HTTP_SERVER_TIMEOUT value, got %d instead of %d`, result, expected)
- }
- sorted := opts.SortedOptions(false)
- i := slices.IndexFunc(sorted, func(opt *option) bool {
- return opt.Key == "HTTP_SERVER_TIMEOUT"
- })
- expectedSerialized := 342
- if got := sorted[i].Value; got != expectedSerialized {
- t.Fatalf(`Unexpected value in option output, got %q instead of %q`, got, expectedSerialized)
- }
- }
- func TestDefaultHTTPServerTimeoutValue(t *testing.T) {
- os.Clearenv()
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- expected := defaultHTTPServerTimeout
- result := opts.HTTPServerTimeout()
- if result != expected {
- t.Fatalf(`Unexpected HTTP_SERVER_TIMEOUT value, got %d instead of %d`, result, expected)
- }
- }
- func TestParseConfigFile(t *testing.T) {
- content := []byte(`
- # This is a comment
- LOG_LEVEL = debug
- Invalid text
- `)
- tmpfile, err := os.CreateTemp(".", "miniflux.*.unit_test.conf")
- if err != nil {
- t.Fatal(err)
- }
- if _, err := tmpfile.Write(content); err != nil {
- t.Fatal(err)
- }
- os.Clearenv()
- parser := NewParser()
- opts, err := parser.ParseFile(tmpfile.Name())
- if err != nil {
- t.Errorf(`Parsing failure: %v`, err)
- }
- if opts.LogLevel() != "debug" {
- t.Errorf(`Unexpected log level value, got %q`, opts.LogLevel())
- }
- if err := tmpfile.Close(); err != nil {
- t.Fatal(err)
- }
- if err := os.Remove(tmpfile.Name()); err != nil {
- t.Fatal(err)
- }
- }
- func TestAuthProxyHeader(t *testing.T) {
- os.Clearenv()
- os.Setenv("AUTH_PROXY_HEADER", "X-Forwarded-User")
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- expected := "X-Forwarded-User"
- result := opts.AuthProxyHeader()
- if result != expected {
- t.Fatalf(`Unexpected AUTH_PROXY_HEADER value, got %q instead of %q`, result, expected)
- }
- }
- func TestDefaultAuthProxyHeaderValue(t *testing.T) {
- os.Clearenv()
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- expected := defaultAuthProxyHeader
- result := opts.AuthProxyHeader()
- if result != expected {
- t.Fatalf(`Unexpected AUTH_PROXY_HEADER value, got %q instead of %q`, result, expected)
- }
- }
- func TestAuthProxyUserCreationWhenUnset(t *testing.T) {
- os.Clearenv()
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- expected := false
- result := opts.IsAuthProxyUserCreationAllowed()
- if result != expected {
- t.Fatalf(`Unexpected AUTH_PROXY_USER_CREATION value, got %v instead of %v`, result, expected)
- }
- }
- func TestAuthProxyUserCreationAdmin(t *testing.T) {
- os.Clearenv()
- os.Setenv("AUTH_PROXY_USER_CREATION", "1")
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- expected := true
- result := opts.IsAuthProxyUserCreationAllowed()
- if result != expected {
- t.Fatalf(`Unexpected AUTH_PROXY_USER_CREATION value, got %v instead of %v`, result, expected)
- }
- }
- func TestFetchBilibiliWatchTime(t *testing.T) {
- os.Clearenv()
- os.Setenv("FETCH_BILIBILI_WATCH_TIME", "1")
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- expected := true
- result := opts.FetchBilibiliWatchTime()
- if result != expected {
- t.Fatalf(`Unexpected FETCH_BILIBILI_WATCH_TIME value, got %v instead of %v`, result, expected)
- }
- }
- func TestFetchNebulaWatchTime(t *testing.T) {
- os.Clearenv()
- os.Setenv("FETCH_NEBULA_WATCH_TIME", "1")
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- expected := true
- result := opts.FetchNebulaWatchTime()
- if result != expected {
- t.Fatalf(`Unexpected FETCH_NEBULA_WATCH_TIME value, got %v instead of %v`, result, expected)
- }
- }
- func TestFetchOdyseeWatchTime(t *testing.T) {
- os.Clearenv()
- os.Setenv("FETCH_ODYSEE_WATCH_TIME", "1")
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- expected := true
- result := opts.FetchOdyseeWatchTime()
- if result != expected {
- t.Fatalf(`Unexpected FETCH_ODYSEE_WATCH_TIME value, got %v instead of %v`, result, expected)
- }
- }
- func TestFetchYouTubeWatchTime(t *testing.T) {
- os.Clearenv()
- os.Setenv("FETCH_YOUTUBE_WATCH_TIME", "1")
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- expected := true
- result := opts.FetchYouTubeWatchTime()
- if result != expected {
- t.Fatalf(`Unexpected FETCH_YOUTUBE_WATCH_TIME value, got %v instead of %v`, result, expected)
- }
- }
- func TestYouTubeApiKey(t *testing.T) {
- os.Clearenv()
- os.Setenv("YOUTUBE_API_KEY", "AAAAAAAAAAAAAaaaaaaaaaaaaa0000000000000")
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- expected := "AAAAAAAAAAAAAaaaaaaaaaaaaa0000000000000"
- result := opts.YouTubeApiKey()
- if result != expected {
- t.Fatalf(`Unexpected YOUTUBE_API_KEY value, got %v instead of %v`, result, expected)
- }
- }
- func TestDefaultYouTubeEmbedUrl(t *testing.T) {
- os.Clearenv()
- opts, err := NewParser().ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- expected := "https://www.youtube-nocookie.com/embed/"
- result := opts.YouTubeEmbedUrlOverride()
- if result != expected {
- t.Fatalf(`Unexpected default value, got %v instead of %v`, result, expected)
- }
- expected = "www.youtube-nocookie.com"
- result = opts.YouTubeEmbedDomain()
- if result != expected {
- t.Fatalf(`Unexpected YouTube embed domain, got %v instead of %v`, result, expected)
- }
- }
- func TestYouTubeEmbedUrlOverride(t *testing.T) {
- os.Clearenv()
- os.Setenv("YOUTUBE_EMBED_URL_OVERRIDE", "https://invidious.custom/embed/")
- opts, err := NewParser().ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- expected := "https://invidious.custom/embed/"
- result := opts.YouTubeEmbedUrlOverride()
- if result != expected {
- t.Fatalf(`Unexpected YOUTUBE_EMBED_URL_OVERRIDE value, got %v instead of %v`, result, expected)
- }
- expected = "invidious.custom"
- result = opts.YouTubeEmbedDomain()
- if result != expected {
- t.Fatalf(`Unexpected YouTube embed domain, got %v instead of %v`, result, expected)
- }
- }
- func TestParseConfigDumpOutput(t *testing.T) {
- os.Clearenv()
- wantOpts := NewOptions()
- wantOpts.adminUsername = "my-username"
- serialized := wantOpts.String()
- tmpfile, err := os.CreateTemp(".", "miniflux.*.unit_test.conf")
- if err != nil {
- t.Fatal(err)
- }
- if _, err := tmpfile.WriteString(serialized); err != nil {
- t.Fatal(err)
- }
- parser := NewParser()
- parsedOpts, err := parser.ParseFile(tmpfile.Name())
- if err != nil {
- t.Errorf(`Parsing failure: %v`, err)
- }
- if parsedOpts.AdminUsername() != wantOpts.AdminUsername() {
- t.Fatalf(`Unexpected ADMIN_USERNAME value, got %q instead of %q`, parsedOpts.AdminUsername(), wantOpts.AdminUsername())
- }
- if err := tmpfile.Close(); err != nil {
- t.Fatal(err)
- }
- if err := os.Remove(tmpfile.Name()); err != nil {
- t.Fatal(err)
- }
- }
- func TestHTTPClientProxies(t *testing.T) {
- os.Clearenv()
- os.Setenv("HTTP_CLIENT_PROXIES", "http://proxy1.example.com,http://proxy2.example.com")
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- expected := []string{"http://proxy1.example.com", "http://proxy2.example.com"}
- result := opts.HTTPClientProxies()
- if len(expected) != len(result) {
- t.Fatalf(`Unexpected HTTP_CLIENT_PROXIES value, got %v instead of %v`, result, expected)
- }
- for i, proxy := range expected {
- if result[i] != proxy {
- t.Fatalf(`Unexpected HTTP_CLIENT_PROXIES value at index %d, got %q instead of %q`, i, result[i], proxy)
- }
- }
- }
- func TestDefaultHTTPClientProxiesValue(t *testing.T) {
- os.Clearenv()
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- expected := []string{}
- result := opts.HTTPClientProxies()
- if len(expected) != len(result) {
- t.Fatalf(`Unexpected default HTTP_CLIENT_PROXIES value, got %v instead of %v`, result, expected)
- }
- }
- func TestHTTPClientProxy(t *testing.T) {
- os.Clearenv()
- os.Setenv("HTTP_CLIENT_PROXY", "http://proxy.example.com")
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- expected := "http://proxy.example.com"
- if opts.HTTPClientProxyURL() == nil || opts.HTTPClientProxyURL().String() != expected {
- t.Fatalf(`Unexpected HTTP_CLIENT_PROXY value, got %v instead of %v`, opts.HTTPClientProxyURL(), expected)
- }
- }
- func TestInvalidHTTPClientProxy(t *testing.T) {
- os.Clearenv()
- os.Setenv("HTTP_CLIENT_PROXY", "sche|me://invalid-proxy-url")
- parser := NewParser()
- _, err := parser.ParseEnvironmentVariables()
- if err == nil {
- t.Fatalf(`Expected error for invalid HTTP_CLIENT_PROXY value, but got none`)
- }
- }
- func TestDefaultPollingLimitPerHost(t *testing.T) {
- os.Clearenv()
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- expected := 0
- result := opts.PollingLimitPerHost()
- if result != expected {
- t.Fatalf(`Unexpected default PollingLimitPerHost value, got %v instead of %v`, result, expected)
- }
- }
- func TestCustomPollingLimitPerHost(t *testing.T) {
- os.Clearenv()
- os.Setenv("POLLING_LIMIT_PER_HOST", "10")
- parser := NewParser()
- opts, err := parser.ParseEnvironmentVariables()
- if err != nil {
- t.Fatalf(`Parsing failure: %v`, err)
- }
- expected := 10
- result := opts.PollingLimitPerHost()
- if result != expected {
- t.Fatalf(`Unexpected custom PollingLimitPerHost value, got %v instead of %v`, result, expected)
- }
- }
|