How to use tf class of io.kotest.matchers.string package

Best Kotest code snippet using io.kotest.matchers.string.tf

imgui.kt

Source:imgui.kt Github

copy

Full Screen

...99 val decompressed = stb.decompress(compressed)100 decompressed.forEachIndexed { i, it -> it shouldBe plain[i] }101 }102 "imgui" {103 // val url = ClassLoader.getSystemResource("main/ProggyClean.ttf")104// val file = File(url.toURI())105// val chars = file.readBytes().map { (it.i and 0xff).c }106 "main/proggyClean_compressedBase85".file.readLines()107 .flatMap { it.toCharArray().asIterable() }108 .forEachIndexed { i, c -> c shouldBe proggyCleanTtfCompressedDataBase85[i] }109 val compressedTTF = decode85(proggyCleanTtfCompressedDataBase85)110 "main/proggyClean_compressed".file.readLines()111 .flatMap { it.split("\\s+".toRegex()).map { it.toInt() } }112 .forEachIndexed { i, int -> int.uc shouldBe compressedTTF[i] }113 val plain = stb.decompress(compressedTTF)114 "main/proggyClean_".file.readLines()115 .flatMap { it.split("\\s+".toRegex()).map { it.toInt() } }116 .forEachIndexed { i, int -> int.uc shouldBe plain[i] }117 }118 }119 val proggyCleanTtfCompressedDataBase85 by lazy {120 "7])#######hV0qs'/###[),##/l:\$#Q6>##5[n42>c-TH`->>#/e>11NNV=Bv(*:.F?uu#(gRU.o0XGH`\$vhLG1hxt9?W`#,5LsCp#-i>.r\$<\$6pD>Lb';9Crc6tgXmKVeU2cD4Eo3R/" +121 "2*>]b(MC;\$jPfY.;h^`IWM9<Lh2TlS+f-s\$o6Q<BWH`YiU.xfLq\$N;\$0iR/GX:U(jcW2p/W*q?-qmnUCI;jHSAiFWM.R*kU@C=GH?a9wp8f\$e.-4^Qg1)Q-GL(lf(r/7GrRgwV%MS=C#" +122 "`8ND>Qo#t'X#(v#Y9w0#1D\$CIf;W'#pWUPXOuxXuU(H9M(1<q-UE31#^-V'8IRUo7Qf./L>=Ke\$\$'5F%)]0^#0X@U.a<r:QLtFsLcL6##lOj)#.Y5<-R&KgLwqJfLgN&;Q?gI^#DY2uL" +123 "i@^rMl9t=cWq6##weg>\$FBjVQTSDgEKnIS7EM9>ZY9w0#L;>>#Mx&4Mvt//L[MkA#W@lK.N'[0#7RL_&#w+F%HtG9M#XL`N&.,GM4Pg;-<nLENhvx>-VsM.M0rJfLH2eTM`*oJMHRC`N" +124 "kfimM2J,W-jXS:)r0wK#@Fge\$U>`w'N7G#\$#fB#\$E^\$#:9:hk+eOe--6x)F7*E%?76%^GMHePW-Z5l'&GiF#\$956:rS?dA#fiK:)Yr+`&#0j@'DbG&#^\$PG.Ll+DNa<XCMKEV*N)LN/N" +125 "*b=%Q6pia-Xg8I\$<MR&,VdJe\$<(7G;Ckl'&hF;;\$<_=X(b.RS%%)###MPBuuE1V:v&cX&#2m#(&cV]`k9OhLMbn%s\$G2,B\$BfD3X*sp5#l,\$R#]x_X1xKX%b5U*[r5iMfUo9U`N99hG)" +126 "tm+/Us9pG)XPu`<0s-)WTt(gCRxIg(%6sfh=ktMKn3j)<6<b5Sk_/0(^]AaN#(p/L>&VZ>1i%h1S9u5o@YaaW\$e+b<TWFn/Z:Oh(Cx2\$lNEoN^e)#CFY@@I;BOQ*sRwZtZxRcU7uW6CX" +127 "ow0i(?\$Q[cjOd[P4d)]>ROPOpxTO7Stwi1::iB1q)C_=dV26J;2,]7op\$]uQr@_V7\$q^%lQwtuHY]=DX,n3L#0PHDO4f9>dC@O>HBuKPpP*E,N+b3L#lpR/MrTEH.IAQk.a>D[.e;mc." +128 "x]Ip.PH^'/aqUO/\$1WxLoW0[iLA<QT;5HKD+@qQ'NQ(3_PLhE48R.qAPSwQ0/WK?Z,[x?-J;jQTWA0X@KJ(_Y8N-:/M74:/-ZpKrUss?d#dZq]DAbkU*JqkL+nwX@@47`5>w=4h(9.`G" +129 "CRUxHPeR`5Mjol(dUWxZa(>STrPkrJiWx`5U7F#.g*jrohGg`cg:lSTvEY/EV_7H4Q9[Z%cnv;JQYZ5q.l7Zeas:HOIZOB?G<Nald\$qs]@]L<J7bR*>gv:[7MI2k).'2(\$5FNP&EQ(,)" +130 "U]W]+fh18.vsai00);D3@4ku5P?DP8aJt+;qUM]=+b'8@;mViBKx0DE[-auGl8:PJ&Dj+M6OC]O^((##]`0i)drT;-7X`=-H3[igUnPG-NZlo.#k@h#=Ork\$m>a>\$-?Tm\$UV(?#P6YY#" +131 "'/###xe7q.73rI3*pP/\$1>s9)W,JrM7SN]'/4C#v\$U`0#V.[0>xQsH\$fEmPMgY2u7Kh(G%siIfLSoS+MK2eTM\$=5,M8p`A.;_R%#u[K#\$x4AG8.kK/HSB==-'Ie/QTtG?-.*^N-4B/ZM" +132 "_3YlQC7(p7q)&](`6_c)\$/*JL(L-^(]\$wIM`dPtOdGA,U3:w2M-0<q-]L_?^)1vw'.,MRsqVr.L;aN&#/EgJ)PBc[-f>+WomX2u7lqM2iEumMTcsF?-aT=Z-97UEnXglEn1K-bnEO`gu" +133 "Ft(c%=;Am_Qs@jLooI&NX;]0#j4#F14;gl8-GQpgwhrq8'=l_f-b49'UOqkLu7-##oDY2L(te+Mch&gLYtJ,MEtJfLh'x'M=\$CS-ZZ%P]8bZ>#S?YY#%Q&q'3^Fw&?D)UDNrocM3A76/" +...

Full Screen

Full Screen

GoogleOpenIdTest.kt

Source:GoogleOpenIdTest.kt Github

copy

Full Screen

1package dev.neeffect.nee.effects.security.oauth2import dev.neeffect.nee.effects.test.get3import dev.neeffect.nee.effects.test.getAny4import dev.neeffect.nee.effects.time.HasteTimeProvider5import dev.neeffect.nee.effects.time.TimeProvider6import dev.neeffect.nee.security.User7import dev.neeffect.nee.security.UserRole8import dev.neeffect.nee.security.jwt.JwtConfig9import dev.neeffect.nee.security.jwt.JwtConfigurationModule10import dev.neeffect.nee.security.jwt.UserCoder11import dev.neeffect.nee.security.oauth.GoogleOpenId12import dev.neeffect.nee.security.oauth.OauthConfig13import dev.neeffect.nee.security.oauth.OauthProviderName14import dev.neeffect.nee.security.oauth.ProviderConfig15import dev.neeffect.nee.security.oauth.SimpleOauthConfigModule16import dev.neeffect.nee.security.state.ServerVerifier17import io.haste.Haste18import io.kotest.core.spec.style.DescribeSpec19import io.kotest.matchers.shouldBe20import io.ktor.client.HttpClient21import io.ktor.client.engine.mock.MockEngine22import io.ktor.client.engine.mock.respond23import io.ktor.client.engine.mock.toByteArray24import io.ktor.client.features.json.JacksonSerializer25import io.ktor.client.features.json.JsonFeature26import io.ktor.http.ContentType27import io.ktor.http.HttpStatusCode28import io.ktor.http.headersOf29import io.ktor.http.parseUrlEncodedParameters30import io.vavr.kotlin.hashMap31import io.vavr.kotlin.option32import io.vavr.kotlin.some33import java.security.KeyPair34import java.time.Clock35import java.time.Instant36import java.time.ZoneId37import java.util.*38internal class GoogleOpenIdTest : DescribeSpec({39 describe("gooogle open id") {40 val testModule = GoogleOpenIdTest.createTestModule()41 val googleOpenId = GoogleOpenId(testModule)42 it("generates api call url") {43 val url = googleOpenId.generateApiCall("lokal-post")44 url shouldBe expectedUrl45 }46 describe("tokens") {47 val tokens = googleOpenId.verifyOauthToken("acode", "http://localhost:8080", "anyState")48 it("calls google for tokens") {49 tokens.perform(Unit).get().tokens.idToken shouldBe otherGoogleIdToken.option()50 }51 it("gets subject ") {52 tokens.perform(Unit).get().subject shouldBe "108874454676244700380"53 }54 it("gets email ") {55 tokens.perform(Unit).get().email shouldBe some("jratajski@gmail.com")56 }57 it("gets name") {58 tokens.perform(Unit).get().displayName shouldBe some("Jarek Ratajski")59 }60 }61 it("return no jwt in case of a bad token") {62 val tokens = googleOpenId.verifyOauthToken("bad code", "http://localhost:8080", "anyState")63 tokens.perform(Unit).getAny().isLeft shouldBe true64 }65 }66}) {67 companion object {68 val googleKeysFile = GoogleOpenIdTest::class.java.getResource("/google/keys.json").toExternalForm()69 val testOauthConfig = OauthConfig(70 providers = hashMap(71 OauthProviderName.Google.providerName72 to ProviderConfig("testId", "testSecret", googleKeysFile.option())73 )74 )75 val jwtConfig = JwtConfig(issuer = "test", signerSecret = "marny")76 val keyPath = GoogleOpenIdTest::class.java.getResourceAsStream("/keys/testServerKey.bin")77 val serveKeyPair = ServerVerifier.loadKeyPair(keyPath).get()78 val preservedState =79 "NZ1BuveK/g3hu+euKMBFDA==@BTyAoSqsaxQUq11+TWc+cRxvrkK3qcFnNivhjzu5luuoycBhyWoGaz0Z1e7bG4PO1x+onlyNAvDhKzzXpmVm2onC0tHVzRy/0pNBDXCgaeAx/mXmoIxtcMBRPObzjF1ENnu/zZ+jocni8comvOkYf1iqJAhiZNwKaixsirLaF00="80 val expectedUrl = """81 https://accounts.google.com/o/oauth2/v2/auth?82 response_type=code&83 client_id=testId&84 scope=openid%20profile%20email%20https://www.googleapis.com/auth/user.organization.read&85 redirect_uri=lokal-post&86 state=${preservedState}&87 login_hint=jsmith@example.com&88 nonce=0.308719489 """.trimIndent().replace("\n", "")90 val testHttpClient = HttpClient(MockEngine) {91 install(JsonFeature) {92 serializer = JacksonSerializer()93 }94 engine {95 addHandler { request ->96 when (request.url.toString()) {97 "https://oauth2.googleapis.com/token" -> {98 val content = request.body.toByteArray().decodeToString()99 val params = content.parseUrlEncodedParameters()100 val code = params["code"]101 if (code == "acode") {102 val responseHeaders =103 headersOf("Content-Type" to listOf(ContentType.Application.Json.toString()))104 respond(simulatedGoogleTokenResponse, headers = responseHeaders)105 } else {106 respond("I hate you", HttpStatusCode.Forbidden)107 }108 }109 else -> error("Unhandled ${request.url}")110 }111 }112 }113 }114 //TODO extract and move to jwtDecodeTest along with MultiVerifier115 const val sampleGoogleToken =116 "eyJhbGciOiJSUzI1NiIsImtpZCI6ImQ5NDZiMTM3NzM3Yjk3MzczOGU1Mjg2YzIwOGI2NmU3YTM5ZWU3YzEiLCJ0eXAiOiJKV1QifQ.eyJpc3MiOiJodHRwczovL2FjY291bnRzLmdvb2dsZS5jb20iLCJhenAiOiI4OTA0Mzg5MDc5NzYtdmRrZG9kcmo4NjE5dXZxaTZhcG5ocHQ2MTFoMWY5OGguYXBwcy5nb29nbGV1c2VyY29udGVudC5jb20iLCJhdWQiOiI4OTA0Mzg5MDc5NzYtdmRrZG9kcmo4NjE5dXZxaTZhcG5ocHQ2MTFoMWY5OGguYXBwcy5nb29nbGV1c2VyY29udGVudC5jb20iLCJzdWIiOiIxMDg4NzQ0NTQ2NzYyNDQ3MDAzODAiLCJlbWFpbCI6ImpyYXRhanNraUBnbWFpbC5jb20iLCJlbWFpbF92ZXJpZmllZCI6dHJ1ZSwiYXRfaGFzaCI6InFIR21SMUE3OUhqdEl5cW5MTl9ya2ciLCJuYW1lIjoiSmFyZWsgUmF0YWpza2kiLCJwaWN0dXJlIjoiaHR0cHM6Ly9saDQuZ29vZ2xldXNlcmNvbnRlbnQuY29tLy1lWHB2TlJLdVJyZy9BQUFBQUFBQUFBSS9BQUFBQUFBQUFBQS9BTVp1dWNtbTRzS0RCenJhakpXN0NTSVkxeUF4VzZsUGp3L3M5Ni1jL3Bob3RvLmpwZyIsImdpdmVuX25hbWUiOiJKYXJlayIsImZhbWlseV9uYW1lIjoiUmF0YWpza2kiLCJsb2NhbGUiOiJwbCIsImlhdCI6MTYwNTUyOTYyMiwiZXhwIjoxNjA1NTMzMjIyfQ.TfFiTZ4xLYcBllGqHZPAyeUn5Vo5t-hHmyja_upx-6HuXIY4RKxA_IYHX28MsCKD0hX9hX-LiZqIuZus-NKimguHmxbHxweUassraPidI-UmqTkrccFWYXE1wqLvpm_He9fwTf6imFmXnAPDT61bhTm2HQAgwZ_HOVsd8uk1j4uuIM-DHU7ndOtX88KXoXDfILKSAzOUcVwWgUgCmjuGSpd6RQ4JH7remBNcQCs0qQ7WZPKNsY1xKHj7y4LMjPpKFb3vGo1omxTeHCMmmgzS3sf7SAomqbRGUwGWi92HWv560FfXDjFf59zzmgWoNsauRXXjlMNK9QPrj7gUriq2mQ"117 const val otherGoogleIdToken =118 "eyJhbGciOiJSUzI1NiIsImtpZCI6ImQ0Y2JhMjVlNTYzNjYwYTkwMDlkODIwYTFjMDIwMjIwNzA1NzRlODIiLCJ0eXAiOiJKV1QifQ.eyJpc3MiOiJodHRwczovL2FjY291bnRzLmdvb2dsZS5jb20iLCJhenAiOiI4OTA0Mzg5MDc5NzYtdmRrZG9kcmo4NjE5dXZxaTZhcG5ocHQ2MTFoMWY5OGguYXBwcy5nb29nbGV1c2VyY29udGVudC5jb20iLCJhdWQiOiI4OTA0Mzg5MDc5NzYtdmRrZG9kcmo4NjE5dXZxaTZhcG5ocHQ2MTFoMWY5OGguYXBwcy5nb29nbGV1c2VyY29udGVudC5jb20iLCJzdWIiOiIxMDg4NzQ0NTQ2NzYyNDQ3MDAzODAiLCJlbWFpbCI6ImpyYXRhanNraUBnbWFpbC5jb20iLCJlbWFpbF92ZXJpZmllZCI6dHJ1ZSwiYXRfaGFzaCI6IklRRHdGeHdXU1VFSEJJQkRIcm13Y3ciLCJub25jZSI6IjAuNjk2NDIyMSIsIm5hbWUiOiJKYXJlayBSYXRhanNraSIsInBpY3R1cmUiOiJodHRwczovL2xoNC5nb29nbGV1c2VyY29udGVudC5jb20vLWVYcHZOUkt1UnJnL0FBQUFBQUFBQUFJL0FBQUFBQUFBQUFBL0FNWnV1Y21tNHNLREJ6cmFqSlc3Q1NJWTF5QXhXNmxQancvczk2LWMvcGhvdG8uanBnIiwiZ2l2ZW5fbmFtZSI6IkphcmVrIiwiZmFtaWx5X25hbWUiOiJSYXRhanNraSIsImxvY2FsZSI6InBsIiwiaWF0IjoxNjA3MzM2OTIyLCJleHAiOjE2MDczNDA1MjJ9.DYmOVmgIf2EPmCdXUampKnOI6uEJlnopWkOCcsVJwXYAHPEU1wcD6bVOPGonM98N0pYWXU0k6NADIpvcoQkgRAC8atuOS9iqNduAq43t66fICVC503u6UlnCIwQDiMaGql3M7D3gDLNKVFQcJsyvQ-fax-mOu5bBQyAXEqbbl2SPA0T01_l2DI6j0ahit0cbC8AlJYAsEedncRvutpWNGON6MyGqV-gP4otW1sR-uTsqSM8miHRgr0BatJxzpYI5CVFwBxViXCYfbI_38B_wUmTCSBCGGslTDbZk2C0hqHtEIucTd--Yif1NSUfbVzzAlrv3Adc6-P5-a9Om4_kwsw"119 val simulatedGoogleTokenResponse =120 """121 {122 "access_token" : "at",123 "id_token": "$otherGoogleIdToken",124 "refresh_token" : "some refresh token"125 }126 """.trimIndent()127 val haste = Haste.TimeSource.withFixedClock(128 Clock.fixed(Instant.parse("2020-10-24T22:22:03.00Z"), ZoneId.of("Europe/Berlin"))129 )130 val createTestModule: () -> SimpleOauthConfigModule = {131 object : SimpleOauthConfigModule(testOauthConfig, jwtConfig) {132 private val self = this133 override val randomGenerator: Random =134 Random(42L)135 override val baseTimeProvider: TimeProvider = HasteTimeProvider(haste)136 override val keyPair: KeyPair137 get() = serveKeyPair138 override val httpClient: HttpClient = testHttpClient139 override val jwtConfigModule by lazy {140 object : JwtConfigurationModule<User, UserRole>(this.jwtConfig, baseTimeProvider) {141 override val userCoder: UserCoder<User, UserRole> = self.userCoder142 }143 }144 }145 }146 }147}...

Full Screen

Full Screen

TransactionEncoderTest.kt

Source:TransactionEncoderTest.kt Github

copy

Full Screen

...26 receiverId = "whatever.near",27 actions = listOf(28 Action.Transfer(BigInteger.valueOf(1))29 ),30 blockHash = "244ZQ9cgj3CQ6bWBdytfrJMuMQ1jdXLFGnr4HhvtCTnM"31 ),32 ),33 Tuple2(34 "09000000746573742e6e656172000f56a5f028dfc089ec7c39c1183b321b4d8f89ba5bec9e1762803cc2491f6ef80100000000000000030000003132330fa473fd26901df296be6adc4cc4df34d040efa2435224b6986910e630c2fef608000000000103000000010203020300000071717103000000010203e80300000000000040420f00000000000000000000000000037b0000000000000000000000000000000440420f00000000000000000000000000000f56a5f028dfc089ec7c39c1183b321b4d8f89ba5bec9e1762803cc2491f6ef805000f56a5f028dfc089ec7c39c1183b321b4d8f89ba5bec9e1762803cc2491f6ef800000000000000000000030000007a7a7a010000000300000077777706000f56a5f028dfc089ec7c39c1183b321b4d8f89ba5bec9e1762803cc2491f6ef80703000000313233",35 Transaction(36 signerId = "test.near",37 publicKey = PublicKey("5ZGzNvMNqV2g29YdMuYNfXi9LYa3mTqdxWXt9Nx4xF5tb"),38 nonce = 1,39 receiverId = "123",40 actions = listOf(41 Action.CreateAccount,42 Action.DeployContract(listOf(Char(1), Char(2), Char(3)).joinToString("")),43 Action.FunctionCall(44 methodName = "qqq",45 gas = 1000,46 deposit = BigInteger.valueOf(1000000),47 args = listOf(Char(1), Char(2), Char(3)).joinToString("")48 ),49 Action.Transfer(deposit = BigInteger.valueOf(123)),50 Action.Stake(51 stake = BigInteger.valueOf(1000000),52 publicKey = PublicKey("5ZGzNvMNqV2g29YdMuYNfXi9LYa3mTqdxWXt9Nx4xF5tb")53 ),54 Action.AddKey(55 publicKey = PublicKey("5ZGzNvMNqV2g29YdMuYNfXi9LYa3mTqdxWXt9Nx4xF5tb"),56 accessKey = org.near.api.model.accesskey.AccessKey.functionCallAccessKey(57 receiverId = "zzz",58 methodNames = listOf("www"),59 allowance = null60 )61 ),62 Action.DeleteKey(63 publicKey = PublicKey("5ZGzNvMNqV2g29YdMuYNfXi9LYa3mTqdxWXt9Nx4xF5tb")64 ),65 Action.DeleteAccount(66 beneficiaryId = "123"67 )68 ),69 blockHash = "244ZQ9cgj3CQ6bWBdytfrJMuMQ1jdXLFGnr4HhvtCTnM"70 ),71 ),72 ) { (expected, transaction) ->73 shouldNotThrow<Throwable> {74 val encoded = transaction.encode()75 val hex = encoded.toHexString()76 hex shouldBe expected77 }78 }79 }80 context("serialize signed transaction") {81 withData(82 nameFn = { "${it.b}" },83 listOf(...

Full Screen

Full Screen

HeaderListsTest.kt

Source:HeaderListsTest.kt Github

copy

Full Screen

...36 assertFailsWith<IllegalStateException> {37 splitHeaderListValues("foo, bar, \"baz")38 }.message.shouldContain("missing end quote around quoted header value: `baz`")39 assertFailsWith<IllegalStateException> {40 splitHeaderListValues("foo , \"bar\" \tf,baz")41 }.message.shouldContain("Unexpected char `f` between header values. Previous header: `bar`")42 }43 @Test44 fun testSplitIntList() {45 assertEquals(listOf("1"), splitHeaderListValues("1"))46 assertEquals(listOf("1", "2", "3"), splitHeaderListValues("1,2,3"))47 assertEquals(listOf("1", "2", "3"), splitHeaderListValues("1, 2, 3"))48 // quoted49 assertEquals(listOf("1", "2", "3", "-4", "5"), splitHeaderListValues("1,\"2\",3,\"-4\",5"))50 }51 @Test52 fun testSplitBoolList() {53 assertEquals(listOf("true", "false", "true", "true"), splitHeaderListValues("true,\"false\",true,\"true\""))54 }...

Full Screen

Full Screen

TruthyTest.kt

Source:TruthyTest.kt Github

copy

Full Screen

1package com.sksamuel.hoplite.json2import com.sksamuel.hoplite.ConfigLoader3import io.kotest.matchers.shouldBe4import io.kotest.core.spec.style.StringSpec5class TruthyTest : StringSpec({6 "yes/no values" {7 data class Foo(val a: Boolean, val b: Boolean, val c: Boolean, val d: Boolean, val e: Boolean, val f: Boolean)8 val config = ConfigLoader().loadConfigOrThrow<Foo>("/truthy_yesno.json")9 config.a shouldBe true10 config.b shouldBe false11 config.c shouldBe true12 config.d shouldBe false13 config.e shouldBe true14 config.f shouldBe false15 }16 "1/0 values" {17 data class Foo(val a: Boolean, val b: Boolean)18 val config = ConfigLoader().loadConfigOrThrow<Foo>("/truthy_10.json")19 config.a shouldBe true20 config.b shouldBe false21 }22 "T/F values" {23 data class Foo(val a: Boolean, val b: Boolean, val c: Boolean, val d: Boolean)24 val config = ConfigLoader().loadConfigOrThrow<Foo>("/truthy_TF.json")25 config.a shouldBe true26 config.b shouldBe true27 config.c shouldBe false28 config.d shouldBe false29 }30})...

Full Screen

Full Screen

tf

Using AI Code Generation

copy

Full Screen

1output should startWith("hello")2output should endWith("world")3output should contain("hello")4output should match("hello")5output should notMatch("hello")6output should match("hello".toRegex())7output should notMatch("hello".toRegex())8output should beBlank()9output should notBeBlank()10output should haveLineCount(1)11output should haveLineCount(1, 10)12output should haveLineCount(10, 100)13output should haveLineCount(1, 10, 100)14output should haveLineCount(1, 10, 100, 1000)15output should haveLineCount(10, 100, 1000)16output should haveLineCount(100, 1000)17output should haveLineCount(1000)18output should haveLineCount(10, 100, 1000, 2000)19output should haveLineCount(1000, 2000)20output should haveLineCount(2000)21output should haveLineCount(2000, 3000)22output should haveLineCount(3000)23output should haveLineCount(3000, 4000)24output should haveLineCount(4000)25output should haveLineCount(4000, 5000)26output should haveLineCount(5000)27output should haveLineCount(5000, 6000)28output should haveLineCount(6000)29output should haveLineCount(6000, 7000)30output should haveLineCount(7000)31output should haveLineCount(7000, 8000)32output should haveLineCount(8000)33output should haveLineCount(8000, 9000)34output should haveLineCount(9000)35output should haveLineCount(9000, 10000)36output should haveLineCount(10000)37output should haveLineCount(10000, 11000)38output should haveLineCount(11000)39output should haveLineCount(11000, 12000)40output should haveLineCount(12000)41output should haveLineCount(12000, 13000)42output should haveLineCount(13000)43output should haveLineCount(13000, 14000)44output should haveLineCount(14000)45output should haveLineCount(14000, 15000)46output should haveLineCount(15000)

Full Screen

Full Screen

Automation Testing Tutorials

Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.

LambdaTest Learning Hubs:

YouTube

You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.

Run Kotest automation tests on LambdaTest cloud grid

Perform automation testing on 3000+ real desktop and mobile devices online.

Most used methods in tf

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?

Helpful

NotHelpful