package Ġno . nav . dag p enger . mot tak . db Ċ Ċ import Ġcom . zaxxer . hikari . Hikari DataSource Ċ import Ġorg . test containers . containers . PostgreSQL Container Ċ import Ġorg . test containers . containers . PostgreSQL Container . POST GRE SQL _ PORT Ċ Ċ internal Ġobject ĠPostgres TestHelper Ġ{ ĊĊĠĠĠ Ġval Ġinstance Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ ĠPostgreSQL Container < Nothing >(" postgres : 1 2 "). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstart () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval ĠdataSource Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ ĠH ikari DataSource (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠdataSource ClassName Ġ= Ġ" org . postgresql . ds . PG Simple DataSource " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd DataSource Property (" server Name ", Ġinstance . host ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd DataSource Property (" port Number ", Ġinstance . get Mapped Port ( POST GRE SQL _ PORT )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd DataSource Property (" database Name ", Ġinstance . database Name ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd DataSource Property (" user ", Ġinstance . username ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd DataSource Property (" password ", Ġinstance . password ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmaximum PoolSize Ġ= Ġ 1 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġminimum Idle Ġ= Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġidle Timeout Ġ= Ġ 1 0 0 0 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconnection Timeout Ġ= Ġ 1 0 0 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmax Lifetime Ġ= Ġ 3 0 0 0 1 ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġwith Migr ated Db ( block : Ġ() Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwith Clean Db Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrun Migration ( dataSource ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġblock () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġwith Clean Db ( block : Ġ() Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġclean ( dataSource ). run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġblock () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ