/
LocalOverridesTest.kt
79 lines (63 loc) · 2.58 KB
/
LocalOverridesTest.kt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
package com.statsig.sdk
import kotlinx.coroutines.runBlocking
import org.junit.AfterClass
import org.junit.Assert.assertEquals
import org.junit.Assert.assertFalse
import org.junit.Assert.assertTrue
import org.junit.BeforeClass
import org.junit.Test
class LocalOverridesTest {
private val userA = StatsigUser(userID = "user-a")
private val userB = StatsigUser(customIDs = mapOf("customID" to "user-b"))
private val users = listOf<StatsigUser>(userA, userB)
companion object {
@BeforeClass
@JvmStatic
internal fun beforeAll() = runBlocking {
val options = StatsigOptions(localMode = true)
Statsig.initialize("secret-local", options)
}
@AfterClass
@JvmStatic
fun afterAll() {
Statsig.shutdown()
}
}
@Test
fun testGateOverrides() = runBlocking {
users.forEach { user -> testGateOverridesHelper(user) }
}
private fun testGateOverridesHelper(user: StatsigUser) = runBlocking {
assertFalse(Statsig.checkGate(user, "override_me"))
Statsig.overrideGate("override_me", true)
assertTrue(Statsig.checkGate(user, "override_me"))
Statsig.removeGateOverride("override_me")
assertFalse(Statsig.checkGate(user, "override_me"))
}
@Test
fun testConfigOverrides() = runBlocking {
users.forEach { user -> testConfigOverridesHelper(user) }
}
private fun testConfigOverridesHelper(user: StatsigUser) = runBlocking {
val emptyMap = mapOf<String, Any>()
assertEquals(Statsig.getConfig(user, "override_me").value, emptyMap)
var overriddenValue = mapOf("hello" to "its me")
Statsig.overrideConfig("override_me", overriddenValue)
assertEquals(Statsig.getConfig(user, "override_me").value, overriddenValue)
Statsig.removeConfigOverride("override_me")
assertEquals(Statsig.getConfig(user, "override_me").value, emptyMap)
}
@Test
fun testLayerOverrides() = runBlocking {
users.forEach { user -> testLayerOverridesHelper(user) }
}
private fun testLayerOverridesHelper(user: StatsigUser) = runBlocking {
val emptyMap = mapOf<String, Any>()
assertEquals(Statsig.getLayer(user, "override_me").value, emptyMap)
var overriddenValue = mapOf("hello" to "its me")
Statsig.overrideLayer("override_me", overriddenValue)
assertEquals(Statsig.getLayer(user, "override_me").value, overriddenValue)
Statsig.removeLayerOverride("override_me")
assertEquals(Statsig.getLayer(user, "override_me").value, emptyMap)
}
}