diff --git a/build.sbt b/build.sbt index bb981aa25..77902e303 100644 --- a/build.sbt +++ b/build.sbt @@ -4,7 +4,7 @@ import com.typesafe.sbt.pgp.PgpKeys._ val Organization = "io.github.gitbucket" val Name = "gitbucket" val GitBucketVersion = "4.34.0" -val ScalatraVersion = "2.7.0-RC1" +val ScalatraVersion = "2.7.0" val JettyVersion = "9.4.30.v20200611" val JgitVersion = "5.8.0.202006091008-r" diff --git a/src/test/scala/gitbucket/core/GitBucketCoreModuleSpec.scala b/src/test/scala/gitbucket/core/GitBucketCoreModuleSpec.scala index 5381a23ce..1937379e0 100644 --- a/src/test/scala/gitbucket/core/GitBucketCoreModuleSpec.scala +++ b/src/test/scala/gitbucket/core/GitBucketCoreModuleSpec.scala @@ -7,11 +7,12 @@ import io.github.gitbucket.solidbase.Solidbase import io.github.gitbucket.solidbase.model.Module import liquibase.database.core.{H2Database, MySQLDatabase, PostgresDatabase} import org.junit.runner.Description -import org.scalatest.{FunSuite, Tag} +import org.scalatest.funsuite.AnyFunSuite +import org.scalatest.Tag object ExternalDBTest extends Tag("ExternalDBTest") -class GitBucketCoreModuleSpec extends FunSuite { +class GitBucketCoreModuleSpec extends AnyFunSuite { test("Migration H2") { new Solidbase().migrate( diff --git a/src/test/scala/gitbucket/core/api/JsonFormatSpec.scala b/src/test/scala/gitbucket/core/api/JsonFormatSpec.scala index 8db4e525e..bc6d63f24 100644 --- a/src/test/scala/gitbucket/core/api/JsonFormatSpec.scala +++ b/src/test/scala/gitbucket/core/api/JsonFormatSpec.scala @@ -1,8 +1,8 @@ package gitbucket.core.api -import org.scalatest.FunSuite +import org.scalatest.funsuite.AnyFunSuite -class JsonFormatSpec extends FunSuite { +class JsonFormatSpec extends AnyFunSuite { import ApiSpecModels._ private def expected(json: String) = json.replaceAll("\n", "") diff --git a/src/test/scala/gitbucket/core/model/CommitStateSpec.scala b/src/test/scala/gitbucket/core/model/CommitStateSpec.scala index 4c63b4fb6..7e14a5e70 100644 --- a/src/test/scala/gitbucket/core/model/CommitStateSpec.scala +++ b/src/test/scala/gitbucket/core/model/CommitStateSpec.scala @@ -1,9 +1,9 @@ package gitbucket.core.model import gitbucket.core.model.CommitState._ -import org.scalatest.FunSpec +import org.scalatest.funspec.AnyFunSpec -class CommitStateSpec extends FunSpec { +class CommitStateSpec extends AnyFunSpec { describe("CommitState") { it("should combine empty must eq PENDING") { assert(combine(Set()) == PENDING) diff --git a/src/test/scala/gitbucket/core/service/AccessTokenServiceSpec.scala b/src/test/scala/gitbucket/core/service/AccessTokenServiceSpec.scala index 7951e2cf5..2403ddc6d 100644 --- a/src/test/scala/gitbucket/core/service/AccessTokenServiceSpec.scala +++ b/src/test/scala/gitbucket/core/service/AccessTokenServiceSpec.scala @@ -1,11 +1,11 @@ package gitbucket.core.service import gitbucket.core.model._ -import org.scalatest.FunSuite +import org.scalatest.funsuite.AnyFunSuite import gitbucket.core.model.Profile._ import gitbucket.core.model.Profile.profile.blockingApi._ -class AccessTokenServiceSpec extends FunSuite with ServiceSpecBase { +class AccessTokenServiceSpec extends AnyFunSuite with ServiceSpecBase { test("generateAccessToken") { withTestDB { implicit session => diff --git a/src/test/scala/gitbucket/core/service/AccountFederationServiceSpec.scala b/src/test/scala/gitbucket/core/service/AccountFederationServiceSpec.scala index 8e69ed944..0e25a47a9 100644 --- a/src/test/scala/gitbucket/core/service/AccountFederationServiceSpec.scala +++ b/src/test/scala/gitbucket/core/service/AccountFederationServiceSpec.scala @@ -1,8 +1,8 @@ package gitbucket.core.service -import org.scalatest.FunSpec +import org.scalatest.funspec.AnyFunSpec -class AccountFederationServiceSpec extends FunSpec with ServiceSpecBase { +class AccountFederationServiceSpec extends AnyFunSpec with ServiceSpecBase { describe("getOrCreateFederatedUser") { it("should create a federated account if it does not exist") { diff --git a/src/test/scala/gitbucket/core/service/AccountServiceSpec.scala b/src/test/scala/gitbucket/core/service/AccountServiceSpec.scala index 4162883d7..e2d6ca3b4 100644 --- a/src/test/scala/gitbucket/core/service/AccountServiceSpec.scala +++ b/src/test/scala/gitbucket/core/service/AccountServiceSpec.scala @@ -2,9 +2,9 @@ package gitbucket.core.service import gitbucket.core.model.{Account, GroupMember} import java.util.Date -import org.scalatest.FunSuite +import org.scalatest.funsuite.AnyFunSuite -class AccountServiceSpec extends FunSuite with ServiceSpecBase { +class AccountServiceSpec extends AnyFunSuite with ServiceSpecBase { val RootMailAddress = "root@localhost" diff --git a/src/test/scala/gitbucket/core/service/CommitStatusServiceSpec.scala b/src/test/scala/gitbucket/core/service/CommitStatusServiceSpec.scala index 2d050440b..be03a0684 100644 --- a/src/test/scala/gitbucket/core/service/CommitStatusServiceSpec.scala +++ b/src/test/scala/gitbucket/core/service/CommitStatusServiceSpec.scala @@ -4,10 +4,10 @@ import gitbucket.core.model._ import gitbucket.core.model.Profile._ import gitbucket.core.model.Profile.profile._ import gitbucket.core.model.Profile.profile.blockingApi._ -import org.scalatest.FunSuite +import org.scalatest.funsuite.AnyFunSuite class CommitStatusServiceSpec - extends FunSuite + extends AnyFunSuite with ServiceSpecBase with CommitStatusService with RepositoryService diff --git a/src/test/scala/gitbucket/core/service/IssuesServiceSpec.scala b/src/test/scala/gitbucket/core/service/IssuesServiceSpec.scala index 7ac058e4e..c8d36920f 100644 --- a/src/test/scala/gitbucket/core/service/IssuesServiceSpec.scala +++ b/src/test/scala/gitbucket/core/service/IssuesServiceSpec.scala @@ -2,9 +2,9 @@ package gitbucket.core.service import gitbucket.core.model._ import gitbucket.core.service.IssuesService._ -import org.scalatest.FunSuite +import org.scalatest.funsuite.AnyFunSuite -class IssuesServiceSpec extends FunSuite with ServiceSpecBase { +class IssuesServiceSpec extends AnyFunSuite with ServiceSpecBase { test("getCommitStatues") { withTestDB { implicit session => val user1 = generateNewUserWithDBRepository("user1", "repo1") diff --git a/src/test/scala/gitbucket/core/service/LabelsServiceSpec.scala b/src/test/scala/gitbucket/core/service/LabelsServiceSpec.scala index 931e3088c..4b708b623 100644 --- a/src/test/scala/gitbucket/core/service/LabelsServiceSpec.scala +++ b/src/test/scala/gitbucket/core/service/LabelsServiceSpec.scala @@ -1,9 +1,9 @@ package gitbucket.core.service import gitbucket.core.model._ -import org.scalatest.FunSpec +import org.scalatest.funspec.AnyFunSpec -class LabelsServiceSpec extends FunSpec with ServiceSpecBase { +class LabelsServiceSpec extends AnyFunSpec with ServiceSpecBase { describe("getLabels") { it("should be empty when not have any labels") { withTestDB { implicit session => diff --git a/src/test/scala/gitbucket/core/service/MergeServiceSpec.scala b/src/test/scala/gitbucket/core/service/MergeServiceSpec.scala index f1daec77f..17e819764 100644 --- a/src/test/scala/gitbucket/core/service/MergeServiceSpec.scala +++ b/src/test/scala/gitbucket/core/service/MergeServiceSpec.scala @@ -6,12 +6,12 @@ import gitbucket.core.util.GitSpecUtil._ import org.eclipse.jgit.api.Git import org.eclipse.jgit.lib._ import org.eclipse.jgit.revwalk._ -import org.scalatest.FunSpec +import org.scalatest.funspec.AnyFunSpec import java.io.File import scala.util.Using -class MergeServiceSpec extends FunSpec { +class MergeServiceSpec extends AnyFunSpec { val service = new MergeService with AccountService with ActivityService with IssuesService with LabelsService with MilestonesService with RepositoryService with PrioritiesService with PullRequestService with CommitsService with WebHookPullRequestService with WebHookPullRequestReviewCommentService with RequestCache {} diff --git a/src/test/scala/gitbucket/core/service/ProtectedBranchServiceSpec.scala b/src/test/scala/gitbucket/core/service/ProtectedBranchServiceSpec.scala index 57b4b8909..de4bee26f 100644 --- a/src/test/scala/gitbucket/core/service/ProtectedBranchServiceSpec.scala +++ b/src/test/scala/gitbucket/core/service/ProtectedBranchServiceSpec.scala @@ -5,10 +5,10 @@ import org.eclipse.jgit.transport.{ReceivePack, ReceiveCommand} import org.eclipse.jgit.lib.ObjectId import gitbucket.core.model.CommitState import gitbucket.core.service.ProtectedBranchService.{ProtectedBranchReceiveHook, ProtectedBranchInfo} -import org.scalatest.FunSpec +import org.scalatest.funspec.AnyFunSpec class ProtectedBranchServiceSpec - extends FunSpec + extends AnyFunSpec with ServiceSpecBase with ProtectedBranchService with CommitStatusService { diff --git a/src/test/scala/gitbucket/core/service/PullRequestServiceSpec.scala b/src/test/scala/gitbucket/core/service/PullRequestServiceSpec.scala index 6e7e946e8..3c7b08c9e 100644 --- a/src/test/scala/gitbucket/core/service/PullRequestServiceSpec.scala +++ b/src/test/scala/gitbucket/core/service/PullRequestServiceSpec.scala @@ -1,10 +1,10 @@ package gitbucket.core.service import gitbucket.core.model._ -import org.scalatest.FunSpec +import org.scalatest.funspec.AnyFunSpec class PullRequestServiceSpec - extends FunSpec + extends AnyFunSpec with ServiceSpecBase with MergeService with PullRequestService diff --git a/src/test/scala/gitbucket/core/service/RepositoryServiceSpec.scala b/src/test/scala/gitbucket/core/service/RepositoryServiceSpec.scala index 84b02ffd7..38d83cd1e 100644 --- a/src/test/scala/gitbucket/core/service/RepositoryServiceSpec.scala +++ b/src/test/scala/gitbucket/core/service/RepositoryServiceSpec.scala @@ -1,9 +1,9 @@ package gitbucket.core.service import gitbucket.core.model._ -import org.scalatest.FunSuite +import org.scalatest.funsuite.AnyFunSuite -class RepositoryServiceSpec extends FunSuite with ServiceSpecBase with RepositoryService with AccountService { +class RepositoryServiceSpec extends AnyFunSuite with ServiceSpecBase with RepositoryService with AccountService { test("renameRepository can rename CommitState, ProtectedBranches") { withTestDB { implicit session => val tester = generateNewAccount("tester") diff --git a/src/test/scala/gitbucket/core/service/ServiceSpecBase.scala b/src/test/scala/gitbucket/core/service/ServiceSpecBase.scala index 8849d3463..b2cb41224 100644 --- a/src/test/scala/gitbucket/core/service/ServiceSpecBase.scala +++ b/src/test/scala/gitbucket/core/service/ServiceSpecBase.scala @@ -14,16 +14,15 @@ import java.io.File import gitbucket.core.controller.Context import gitbucket.core.service.SystemSettingsService.{RepositoryOperation, Ssh, SystemSettings} import javax.servlet.http.{HttpServletRequest, HttpSession} -import org.scalatestplus.mockito.MockitoSugar import org.mockito.Mockito._ import scala.util.Random import scala.util.Using -trait ServiceSpecBase extends MockitoSugar { +trait ServiceSpecBase { - val request = mock[HttpServletRequest] - val session = mock[HttpSession] + val request = mock(classOf[HttpServletRequest]) + val session = mock(classOf[HttpSession]) when(request.getRequestURL).thenReturn(new StringBuffer("http://localhost:8080/path.html")) when(request.getRequestURI).thenReturn("/path.html") when(request.getContextPath).thenReturn("") diff --git a/src/test/scala/gitbucket/core/service/WebHookJsonFormatSpec.scala b/src/test/scala/gitbucket/core/service/WebHookJsonFormatSpec.scala index 98f791668..a3b75d09b 100644 --- a/src/test/scala/gitbucket/core/service/WebHookJsonFormatSpec.scala +++ b/src/test/scala/gitbucket/core/service/WebHookJsonFormatSpec.scala @@ -2,9 +2,10 @@ package gitbucket.core.service import gitbucket.core.api.JsonFormat import gitbucket.core.service.WebHookService._ -import org.scalatest.{Assertion, FunSuite} +import org.scalatest.Assertion +import org.scalatest.funsuite.AnyFunSuite -class WebHookJsonFormatSpec extends FunSuite { +class WebHookJsonFormatSpec extends AnyFunSuite { import gitbucket.core.api.ApiSpecModels._ private def assert(payload: WebHookPayload, expected: String): Assertion = { diff --git a/src/test/scala/gitbucket/core/service/WebHookServiceSpec.scala b/src/test/scala/gitbucket/core/service/WebHookServiceSpec.scala index 6bbb8e0fb..ff735478b 100644 --- a/src/test/scala/gitbucket/core/service/WebHookServiceSpec.scala +++ b/src/test/scala/gitbucket/core/service/WebHookServiceSpec.scala @@ -1,10 +1,10 @@ package gitbucket.core.service import gitbucket.core.model.{WebHook, RepositoryWebHook} -import org.scalatest.FunSuite +import org.scalatest.funsuite.AnyFunSuite import gitbucket.core.model.WebHookContentType -class WebHookServiceSpec extends FunSuite with ServiceSpecBase { +class WebHookServiceSpec extends AnyFunSuite with ServiceSpecBase { lazy val service = new WebHookPullRequestService with AccountService with ActivityService with RepositoryService with MergeService with PullRequestService with IssuesService with CommitsService with LabelsService with MilestonesService with PrioritiesService with WebHookPullRequestReviewCommentService with RequestCache diff --git a/src/test/scala/gitbucket/core/ssh/GitCommandSpec.scala b/src/test/scala/gitbucket/core/ssh/GitCommandSpec.scala index 93dd0d4b0..35d88fab7 100644 --- a/src/test/scala/gitbucket/core/ssh/GitCommandSpec.scala +++ b/src/test/scala/gitbucket/core/ssh/GitCommandSpec.scala @@ -1,9 +1,9 @@ package gitbucket.core.ssh import org.apache.sshd.server.shell.UnknownCommand -import org.scalatest.FunSpec +import org.scalatest.funspec.AnyFunSpec -class GitCommandFactorySpec extends FunSpec { +class GitCommandFactorySpec extends AnyFunSpec { val factory = new GitCommandFactory("http://localhost:8080", None) diff --git a/src/test/scala/gitbucket/core/util/DirectorySpec.scala b/src/test/scala/gitbucket/core/util/DirectorySpec.scala index 2e5f0daca..1c11afebb 100644 --- a/src/test/scala/gitbucket/core/util/DirectorySpec.scala +++ b/src/test/scala/gitbucket/core/util/DirectorySpec.scala @@ -1,8 +1,8 @@ package gitbucket.core.util -import org.scalatest.FunSpec +import org.scalatest.funspec.AnyFunSpec -class DirectorySpec extends FunSpec { +class DirectorySpec extends AnyFunSpec { describe("GitBucketHome") { it("should set under target in test scope") { diff --git a/src/test/scala/gitbucket/core/util/EditorConfigUtilSpec.scala b/src/test/scala/gitbucket/core/util/EditorConfigUtilSpec.scala index 791a79761..ed9c8fe84 100644 --- a/src/test/scala/gitbucket/core/util/EditorConfigUtilSpec.scala +++ b/src/test/scala/gitbucket/core/util/EditorConfigUtilSpec.scala @@ -1,9 +1,9 @@ package gitbucket.core.util -import org.scalatest.FunSuite +import org.scalatest.funsuite.AnyFunSuite import GitSpecUtil._ -class EditorConfigUtilSpec extends FunSuite { +class EditorConfigUtilSpec extends AnyFunSuite { val simpleConfig = """[*.txt] |indent_style = tab diff --git a/src/test/scala/gitbucket/core/util/HttpClientUtilSpec.scala b/src/test/scala/gitbucket/core/util/HttpClientUtilSpec.scala index f453a20f9..fec8a52de 100644 --- a/src/test/scala/gitbucket/core/util/HttpClientUtilSpec.scala +++ b/src/test/scala/gitbucket/core/util/HttpClientUtilSpec.scala @@ -1,8 +1,8 @@ package gitbucket.core.util -import org.scalatest.FunSuite +import org.scalatest.funsuite.AnyFunSuite -class HttpClientUtilSpec extends FunSuite { +class HttpClientUtilSpec extends AnyFunSuite { test("isPrivateAddress") { assert(HttpClientUtil.isPrivateAddress("localhost") == true) diff --git a/src/test/scala/gitbucket/core/util/JGitUtilSpec.scala b/src/test/scala/gitbucket/core/util/JGitUtilSpec.scala index 07c96b5a5..a46a90f05 100644 --- a/src/test/scala/gitbucket/core/util/JGitUtilSpec.scala +++ b/src/test/scala/gitbucket/core/util/JGitUtilSpec.scala @@ -4,11 +4,11 @@ import GitSpecUtil._ import org.apache.commons.io.IOUtils import org.eclipse.jgit.diff.DiffEntry.ChangeType import org.eclipse.jgit.lib.Constants -import org.scalatest.FunSuite +import org.scalatest.funsuite.AnyFunSuite import scala.jdk.CollectionConverters._ -class JGitUtilSpec extends FunSuite { +class JGitUtilSpec extends AnyFunSuite { test("isEmpty") { withTestRepository { git => diff --git a/src/test/scala/gitbucket/core/util/StringUtilSpec.scala b/src/test/scala/gitbucket/core/util/StringUtilSpec.scala index f2721bc21..e4d64edaf 100644 --- a/src/test/scala/gitbucket/core/util/StringUtilSpec.scala +++ b/src/test/scala/gitbucket/core/util/StringUtilSpec.scala @@ -1,8 +1,8 @@ package gitbucket.core.util -import org.scalatest.FunSpec +import org.scalatest.funspec.AnyFunSpec -class StringUtilSpec extends FunSpec { +class StringUtilSpec extends AnyFunSpec { describe("urlEncode") { it("should encode whitespace to %20") { diff --git a/src/test/scala/gitbucket/core/util/ValidationsSpec.scala b/src/test/scala/gitbucket/core/util/ValidationsSpec.scala index 70cc15ed0..a4502b72a 100644 --- a/src/test/scala/gitbucket/core/util/ValidationsSpec.scala +++ b/src/test/scala/gitbucket/core/util/ValidationsSpec.scala @@ -1,9 +1,9 @@ package gitbucket.core.util import org.scalatra.i18n.Messages -import org.scalatest.FunSpec +import org.scalatest.funspec.AnyFunSpec -class ValidationsSpec extends FunSpec with Validations { +class ValidationsSpec extends AnyFunSpec with Validations { describe("identifier") { it("should validate id string ") { diff --git a/src/test/scala/gitbucket/core/view/AvatarImageProviderSpec.scala b/src/test/scala/gitbucket/core/view/AvatarImageProviderSpec.scala index 46ab5507e..7fc8695dd 100644 --- a/src/test/scala/gitbucket/core/view/AvatarImageProviderSpec.scala +++ b/src/test/scala/gitbucket/core/view/AvatarImageProviderSpec.scala @@ -9,14 +9,13 @@ import gitbucket.core.model.Account import gitbucket.core.service.RequestCache import gitbucket.core.service.SystemSettingsService.{RepositoryOperation, Ssh, SystemSettings, Upload, WebHook} import org.mockito.Mockito._ -import org.scalatest.FunSpec -import org.scalatestplus.mockito.MockitoSugar +import org.scalatest.funspec.AnyFunSpec import play.twirl.api.Html -class AvatarImageProviderSpec extends FunSpec with MockitoSugar { +class AvatarImageProviderSpec extends AnyFunSpec { - val request = mock[HttpServletRequest] - val session = mock[HttpSession] + val request = mock(classOf[HttpServletRequest]) + val session = mock(classOf[HttpSession]) when(request.getRequestURL).thenReturn(new StringBuffer("http://localhost:8080/path.html")) when(request.getRequestURI).thenReturn("/path.html") when(request.getContextPath).thenReturn("") diff --git a/src/test/scala/gitbucket/core/view/HelpersSpec.scala b/src/test/scala/gitbucket/core/view/HelpersSpec.scala index bcffbfef3..3b053665e 100644 --- a/src/test/scala/gitbucket/core/view/HelpersSpec.scala +++ b/src/test/scala/gitbucket/core/view/HelpersSpec.scala @@ -2,15 +2,15 @@ package gitbucket.core.view import gitbucket.core.controller.Context import gitbucket.core.service.RepositoryService.RepositoryInfo -import org.scalatest.FunSpec -import org.scalatestplus.mockito.MockitoSugar +import org.scalatest.funspec.AnyFunSpec import java.util.Date import java.util.TimeZone +import org.mockito.Mockito._ -class HelpersSpec extends FunSpec with MockitoSugar { +class HelpersSpec extends AnyFunSpec { - private implicit val context = mock[Context] - private val repository = mock[RepositoryInfo] + private implicit val context = mock(classOf[Context]) + private val repository = mock(classOf[RepositoryInfo]) import helpers._ diff --git a/src/test/scala/gitbucket/core/view/MarkdownSpec.scala b/src/test/scala/gitbucket/core/view/MarkdownSpec.scala index a9d32bb4f..789772ab3 100644 --- a/src/test/scala/gitbucket/core/view/MarkdownSpec.scala +++ b/src/test/scala/gitbucket/core/view/MarkdownSpec.scala @@ -2,11 +2,10 @@ package gitbucket.core.view import gitbucket.core.controller.Context import gitbucket.core.service.RepositoryService.RepositoryInfo -import org.scalatest.FunSpec -import org.scalatestplus.mockito.MockitoSugar +import org.scalatest.funspec.AnyFunSpec import org.mockito.Mockito._ -class MarkdownSpec extends FunSpec with MockitoSugar { +class MarkdownSpec extends AnyFunSpec { import Markdown._ @@ -96,8 +95,8 @@ tasks describe("toHtml") { it("should fix url at the repository root") { - val repository = mock[RepositoryInfo] - val context = mock[Context] + val repository = mock(classOf[RepositoryInfo]) + val context = mock(classOf[Context]) when(context.currentPath).thenReturn("/user/repo") when(repository.httpUrl(context)).thenReturn("http://localhost:8080/git/user/repo.git") @@ -117,8 +116,8 @@ tasks } it("should fix sub directory url at the file list") { - val repository = mock[RepositoryInfo] - val context = mock[Context] + val repository = mock(classOf[RepositoryInfo]) + val context = mock(classOf[Context]) when(context.currentPath).thenReturn("/user/repo/tree/master/sub/dir") when(repository.httpUrl(context)).thenReturn("http://localhost:8080/git/user/repo.git") @@ -138,8 +137,8 @@ tasks } it("should fix sub directory url at the blob view") { - val repository = mock[RepositoryInfo] - val context = mock[Context] + val repository = mock(classOf[RepositoryInfo]) + val context = mock(classOf[Context]) when(context.currentPath).thenReturn("/user/repo/blob/master/sub/dir/README.md") when(repository.httpUrl(context)).thenReturn("http://localhost:8080/git/user/repo.git") diff --git a/src/test/scala/gitbucket/core/view/PaginationSpec.scala b/src/test/scala/gitbucket/core/view/PaginationSpec.scala index 790368a09..b0025eb8c 100644 --- a/src/test/scala/gitbucket/core/view/PaginationSpec.scala +++ b/src/test/scala/gitbucket/core/view/PaginationSpec.scala @@ -2,9 +2,9 @@ package gitbucket.core.view import gitbucket.core.util.SyntaxSugars import SyntaxSugars._ -import org.scalatest.FunSpec +import org.scalatest.funspec.AnyFunSpec -class PaginationSpec extends FunSpec { +class PaginationSpec extends AnyFunSpec { describe("max") { it("should return max page number") {