@@ -41,8 +41,7 @@ import org.jetbrains.mps.openapi.language.SConcept
4141import org.jetbrains.mps.openapi.model.SModel
4242import org.jetbrains.mps.openapi.model.SNode
4343import org.jetbrains.mps.openapi.module.SModule
44- import org.modelix.authorization.installAuthentication
45- import org.modelix.model.InMemoryModels
44+ import org.modelix.authorization.ModelixAuthorization
4645import org.modelix.model.api.BuiltinLanguages
4746import org.modelix.model.client2.IModelClientV2
4847import org.modelix.model.client2.ModelClientV2
@@ -53,13 +52,13 @@ import org.modelix.model.lazy.RepositoryId
5352import org.modelix.model.mpsadapters.mps.ProjectAsNode
5453import org.modelix.model.mpsadapters.mps.SModuleAsNode
5554import org.modelix.model.server.Main.installStatusPages
55+ import org.modelix.model.server.ModelServerPermissionSchema
5656import org.modelix.model.server.handlers.IdsApiImpl
5757import org.modelix.model.server.handlers.KeyValueLikeModelServer
5858import org.modelix.model.server.handlers.ModelReplicationServer
5959import org.modelix.model.server.handlers.RepositoriesManager
6060import org.modelix.model.server.store.InMemoryStoreClient
61- import org.modelix.model.server.store.LocalModelClient
62- import org.modelix.model.server.store.forContextRepository
61+ import org.modelix.model.server.store.RequiresTransaction
6362import org.modelix.model.server.store.forGlobalRepository
6463import org.modelix.mps.sync.ModelSyncService
6564import org.modelix.mps.sync.api.IBinding
@@ -74,7 +73,7 @@ abstract class SyncPluginTestBase(private val testDataName: String?) : HeavyPlat
7473 companion object {
7574 suspend fun delayUntil (
7675 checkIntervalMilliseconds : Long = 1000,
77- timeoutMilliseconds : Long = 30_000 ,
76+ timeoutMilliseconds : Long = 60_000 ,
7877 exceptionMessage : String? = "Waited too long.",
7978 condition : suspend () -> Boolean ,
8079 ) {
@@ -143,22 +142,28 @@ abstract class SyncPluginTestBase(private val testDataName: String?) : HeavyPlat
143142
144143 protected fun runTestWithModelServer (block : suspend ApplicationTestBuilder .() -> Unit ) = testApplication {
145144 application {
146- installAuthentication(unitTestMode = true )
145+ install(ModelixAuthorization ) {
146+ configureForUnitTests()
147+ permissionSchema = ModelServerPermissionSchema .SCHEMA
148+ }
147149 install(ContentNegotiation ) {
148150 json()
149151 }
150152 install(io.ktor.server.websocket.WebSockets )
151153 install(io.ktor.server.resources.Resources )
152154 install(io.ktor.server.routing.IgnoreTrailingSlash )
153155 installStatusPages()
154- val inMemoryModels = InMemoryModels ()
155156 val storeClient = InMemoryStoreClient ()
156- val localModelClient = LocalModelClient (storeClient.forContextRepository())
157- storeClient.forGlobalRepository().put(" server-id" , " sync-plugin-test" )
158- val repositoriesManager = RepositoriesManager (localModelClient)
159- KeyValueLikeModelServer (repositoriesManager, storeClient.forGlobalRepository(), inMemoryModels).init (this )
160- ModelReplicationServer (repositoriesManager, localModelClient, inMemoryModels).init (this )
161- IdsApiImpl (repositoriesManager, localModelClient).init (this )
157+
158+ @OptIn(RequiresTransaction ::class )
159+ storeClient.runWrite {
160+ storeClient.forGlobalRepository().put(" server-id" , " sync-plugin-test" , true )
161+ }
162+
163+ val repositoriesManager = RepositoriesManager (storeClient)
164+ KeyValueLikeModelServer (repositoriesManager).init (this )
165+ ModelReplicationServer (repositoriesManager).init (this )
166+ IdsApiImpl (repositoriesManager).init (this )
162167 }
163168 httpClient = client
164169 postModelServerSetup()
0 commit comments