From 2fd115ada4fb88bce23ac43cbc1ca73c3e761d83 Mon Sep 17 00:00:00 2001
From: William Walker <wnwalker@ucsc.edu>
Date: Thu, 20 Mar 2025 09:30:36 -0700
Subject: [PATCH] wip

---
 ...est.kt => LibraryArchitectureAssertion.kt} | 21 ++++++++++++++++---
 .../test/{ => kotest}/DevDeviceApiTests.kt    |  2 +-
 .../test/{ => kotest}/DevGroupApiTests.kt     |  2 +-
 .../test/{ => kotest}/DevUserApiTests.kt      |  2 +-
 .../test/{ => kotest}/DevUtilityTests.kt      |  2 +-
 .../temerity/test/{ => kotest}/ModelTests.kt  |  2 +-
 .../test/{ => kotest}/ProdReportTests.kt      |  2 +-
 .../test/{ => kotest}/ProdUtilityTests.kt     |  2 +-
 .../test/{ => kotest}/TemerityDevTest.kt      |  2 +-
 .../its/temerity/test/{ => kotest}/Util.kt    |  2 +-
 10 files changed, 27 insertions(+), 12 deletions(-)
 rename temerity/src/jvmTest/kotlin/edu/ucsc/its/temerity/test/konsist/{TestKonsistTest.kt => LibraryArchitectureAssertion.kt} (65%)
 rename temerity/src/jvmTest/kotlin/edu/ucsc/its/temerity/test/{ => kotest}/DevDeviceApiTests.kt (96%)
 rename temerity/src/jvmTest/kotlin/edu/ucsc/its/temerity/test/{ => kotest}/DevGroupApiTests.kt (96%)
 rename temerity/src/jvmTest/kotlin/edu/ucsc/its/temerity/test/{ => kotest}/DevUserApiTests.kt (99%)
 rename temerity/src/jvmTest/kotlin/edu/ucsc/its/temerity/test/{ => kotest}/DevUtilityTests.kt (97%)
 rename temerity/src/jvmTest/kotlin/edu/ucsc/its/temerity/test/{ => kotest}/ModelTests.kt (96%)
 rename temerity/src/jvmTest/kotlin/edu/ucsc/its/temerity/test/{ => kotest}/ProdReportTests.kt (99%)
 rename temerity/src/jvmTest/kotlin/edu/ucsc/its/temerity/test/{ => kotest}/ProdUtilityTests.kt (97%)
 rename temerity/src/jvmTest/kotlin/edu/ucsc/its/temerity/test/{ => kotest}/TemerityDevTest.kt (99%)
 rename temerity/src/jvmTest/kotlin/edu/ucsc/its/temerity/test/{ => kotest}/Util.kt (99%)

diff --git a/temerity/src/jvmTest/kotlin/edu/ucsc/its/temerity/test/konsist/TestKonsistTest.kt b/temerity/src/jvmTest/kotlin/edu/ucsc/its/temerity/test/konsist/LibraryArchitectureAssertion.kt
similarity index 65%
rename from temerity/src/jvmTest/kotlin/edu/ucsc/its/temerity/test/konsist/TestKonsistTest.kt
rename to temerity/src/jvmTest/kotlin/edu/ucsc/its/temerity/test/konsist/LibraryArchitectureAssertion.kt
index e988c97..ff2bc02 100644
--- a/temerity/src/jvmTest/kotlin/edu/ucsc/its/temerity/test/konsist/TestKonsistTest.kt
+++ b/temerity/src/jvmTest/kotlin/edu/ucsc/its/temerity/test/konsist/LibraryArchitectureAssertion.kt
@@ -19,19 +19,34 @@ package edu.ucsc.its.temerity.test.konsist
 
 import com.lemonappdev.konsist.api.Konsist
 import com.lemonappdev.konsist.api.container.KoScope
+import com.lemonappdev.konsist.api.ext.koscope.declarationsOf
+import com.lemonappdev.konsist.api.ext.provider.hasValidKDocParamTags
+import com.lemonappdev.konsist.api.provider.KoKDocProvider
+import com.lemonappdev.konsist.api.verify.assertTrue
 import io.kotest.core.spec.style.FunSpec
 
-class TestKonsistTest : FunSpec() {
+class LibraryArchitectureAssertion: FunSpec() {
 
   private lateinit var konsist: KoScope
 
   init {
-
     beforeSpec {
       konsist = Konsist.scopeFromProject()
     }
 
-    test("TestKonsistTest") {
+    test("Each api declaration has kdoc") {
+      Konsist
+        .scopeFromProject("..api..")
+        .declarationsOf<KoKDocProvider>()
+        .assertTrue { it.hasKDoc }
+    }
+    
+    test("Each function with parameters has param tags") {
+      Konsist.scopeFromPackage("..api..")
+        .functions()
+        .assertTrue { it.hasValidKDocParamTags() }
     }
+    
+    
   }
 }
diff --git a/temerity/src/jvmTest/kotlin/edu/ucsc/its/temerity/test/DevDeviceApiTests.kt b/temerity/src/jvmTest/kotlin/edu/ucsc/its/temerity/test/kotest/DevDeviceApiTests.kt
similarity index 96%
rename from temerity/src/jvmTest/kotlin/edu/ucsc/its/temerity/test/DevDeviceApiTests.kt
rename to temerity/src/jvmTest/kotlin/edu/ucsc/its/temerity/test/kotest/DevDeviceApiTests.kt
index 4c6b0b8..02d3ad9 100644
--- a/temerity/src/jvmTest/kotlin/edu/ucsc/its/temerity/test/DevDeviceApiTests.kt
+++ b/temerity/src/jvmTest/kotlin/edu/ucsc/its/temerity/test/kotest/DevDeviceApiTests.kt
@@ -15,7 +15,7 @@
  *     License along with this library; if not, write to the Free Software
  *     Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
  */
-package edu.ucsc.its.temerity.test
+package edu.ucsc.its.temerity.test.kotest
 
 import kotlinx.coroutines.runBlocking
 
diff --git a/temerity/src/jvmTest/kotlin/edu/ucsc/its/temerity/test/DevGroupApiTests.kt b/temerity/src/jvmTest/kotlin/edu/ucsc/its/temerity/test/kotest/DevGroupApiTests.kt
similarity index 96%
rename from temerity/src/jvmTest/kotlin/edu/ucsc/its/temerity/test/DevGroupApiTests.kt
rename to temerity/src/jvmTest/kotlin/edu/ucsc/its/temerity/test/kotest/DevGroupApiTests.kt
index 41be5fe..810a29e 100644
--- a/temerity/src/jvmTest/kotlin/edu/ucsc/its/temerity/test/DevGroupApiTests.kt
+++ b/temerity/src/jvmTest/kotlin/edu/ucsc/its/temerity/test/kotest/DevGroupApiTests.kt
@@ -15,7 +15,7 @@
  *     License along with this library; if not, write to the Free Software
  *     Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
  */
-package edu.ucsc.its.temerity.test
+package edu.ucsc.its.temerity.test.kotest
 
 import kotlinx.coroutines.runBlocking
 
diff --git a/temerity/src/jvmTest/kotlin/edu/ucsc/its/temerity/test/DevUserApiTests.kt b/temerity/src/jvmTest/kotlin/edu/ucsc/its/temerity/test/kotest/DevUserApiTests.kt
similarity index 99%
rename from temerity/src/jvmTest/kotlin/edu/ucsc/its/temerity/test/DevUserApiTests.kt
rename to temerity/src/jvmTest/kotlin/edu/ucsc/its/temerity/test/kotest/DevUserApiTests.kt
index 07c2e7e..27432a4 100644
--- a/temerity/src/jvmTest/kotlin/edu/ucsc/its/temerity/test/DevUserApiTests.kt
+++ b/temerity/src/jvmTest/kotlin/edu/ucsc/its/temerity/test/kotest/DevUserApiTests.kt
@@ -15,7 +15,7 @@
  *     License along with this library; if not, write to the Free Software
  *     Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
  */
-package edu.ucsc.its.temerity.test
+package edu.ucsc.its.temerity.test.kotest
 
 import co.touchlab.kermit.Logger
 import com.skydoves.sandwich.StatusCode
diff --git a/temerity/src/jvmTest/kotlin/edu/ucsc/its/temerity/test/DevUtilityTests.kt b/temerity/src/jvmTest/kotlin/edu/ucsc/its/temerity/test/kotest/DevUtilityTests.kt
similarity index 97%
rename from temerity/src/jvmTest/kotlin/edu/ucsc/its/temerity/test/DevUtilityTests.kt
rename to temerity/src/jvmTest/kotlin/edu/ucsc/its/temerity/test/kotest/DevUtilityTests.kt
index 64b5cbc..abf81af 100644
--- a/temerity/src/jvmTest/kotlin/edu/ucsc/its/temerity/test/DevUtilityTests.kt
+++ b/temerity/src/jvmTest/kotlin/edu/ucsc/its/temerity/test/kotest/DevUtilityTests.kt
@@ -17,7 +17,7 @@
  */
 @file:OptIn(KotestInternal::class)
 
-package edu.ucsc.its.temerity.test
+package edu.ucsc.its.temerity.test.kotest
 
 import io.kotest.common.ExperimentalKotest
 import io.kotest.common.KotestInternal
diff --git a/temerity/src/jvmTest/kotlin/edu/ucsc/its/temerity/test/ModelTests.kt b/temerity/src/jvmTest/kotlin/edu/ucsc/its/temerity/test/kotest/ModelTests.kt
similarity index 96%
rename from temerity/src/jvmTest/kotlin/edu/ucsc/its/temerity/test/ModelTests.kt
rename to temerity/src/jvmTest/kotlin/edu/ucsc/its/temerity/test/kotest/ModelTests.kt
index 7ef1162..4346a76 100644
--- a/temerity/src/jvmTest/kotlin/edu/ucsc/its/temerity/test/ModelTests.kt
+++ b/temerity/src/jvmTest/kotlin/edu/ucsc/its/temerity/test/kotest/ModelTests.kt
@@ -15,7 +15,7 @@
  *     License along with this library; if not, write to the Free Software
  *     Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
  */
-package edu.ucsc.its.temerity.test
+package edu.ucsc.its.temerity.test.kotest
 
 import edu.ucsc.its.temerity.model.EventType
 import io.kotest.common.ExperimentalKotest
diff --git a/temerity/src/jvmTest/kotlin/edu/ucsc/its/temerity/test/ProdReportTests.kt b/temerity/src/jvmTest/kotlin/edu/ucsc/its/temerity/test/kotest/ProdReportTests.kt
similarity index 99%
rename from temerity/src/jvmTest/kotlin/edu/ucsc/its/temerity/test/ProdReportTests.kt
rename to temerity/src/jvmTest/kotlin/edu/ucsc/its/temerity/test/kotest/ProdReportTests.kt
index c62a65f..45a92f5 100644
--- a/temerity/src/jvmTest/kotlin/edu/ucsc/its/temerity/test/ProdReportTests.kt
+++ b/temerity/src/jvmTest/kotlin/edu/ucsc/its/temerity/test/kotest/ProdReportTests.kt
@@ -15,7 +15,7 @@
  *     License along with this library; if not, write to the Free Software
  *     Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
  */
-package edu.ucsc.its.temerity.test
+package edu.ucsc.its.temerity.test.kotest
 
 import edu.ucsc.its.temerity.model.AuditLogSortOrder.NEW_FIRST
 import edu.ucsc.its.temerity.model.DeviceRecordingSession
diff --git a/temerity/src/jvmTest/kotlin/edu/ucsc/its/temerity/test/ProdUtilityTests.kt b/temerity/src/jvmTest/kotlin/edu/ucsc/its/temerity/test/kotest/ProdUtilityTests.kt
similarity index 97%
rename from temerity/src/jvmTest/kotlin/edu/ucsc/its/temerity/test/ProdUtilityTests.kt
rename to temerity/src/jvmTest/kotlin/edu/ucsc/its/temerity/test/kotest/ProdUtilityTests.kt
index 4dfbc5f..dfe23b9 100644
--- a/temerity/src/jvmTest/kotlin/edu/ucsc/its/temerity/test/ProdUtilityTests.kt
+++ b/temerity/src/jvmTest/kotlin/edu/ucsc/its/temerity/test/kotest/ProdUtilityTests.kt
@@ -17,7 +17,7 @@
  */
 @file:OptIn(KotestInternal::class)
 
-package edu.ucsc.its.temerity.test
+package edu.ucsc.its.temerity.test.kotest
 
 import io.kotest.common.ExperimentalKotest
 import io.kotest.common.KotestInternal
diff --git a/temerity/src/jvmTest/kotlin/edu/ucsc/its/temerity/test/TemerityDevTest.kt b/temerity/src/jvmTest/kotlin/edu/ucsc/its/temerity/test/kotest/TemerityDevTest.kt
similarity index 99%
rename from temerity/src/jvmTest/kotlin/edu/ucsc/its/temerity/test/TemerityDevTest.kt
rename to temerity/src/jvmTest/kotlin/edu/ucsc/its/temerity/test/kotest/TemerityDevTest.kt
index c3c4f8c..25b9141 100644
--- a/temerity/src/jvmTest/kotlin/edu/ucsc/its/temerity/test/TemerityDevTest.kt
+++ b/temerity/src/jvmTest/kotlin/edu/ucsc/its/temerity/test/kotest/TemerityDevTest.kt
@@ -15,7 +15,7 @@
  *     License along with this library; if not, write to the Free Software
  *     Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
  */
-package edu.ucsc.its.temerity.test
+package edu.ucsc.its.temerity.test.kotest
 
 import co.touchlab.kermit.Logger
 import com.skydoves.sandwich.StatusCode
diff --git a/temerity/src/jvmTest/kotlin/edu/ucsc/its/temerity/test/Util.kt b/temerity/src/jvmTest/kotlin/edu/ucsc/its/temerity/test/kotest/Util.kt
similarity index 99%
rename from temerity/src/jvmTest/kotlin/edu/ucsc/its/temerity/test/Util.kt
rename to temerity/src/jvmTest/kotlin/edu/ucsc/its/temerity/test/kotest/Util.kt
index f2c8893..f4d3e12 100644
--- a/temerity/src/jvmTest/kotlin/edu/ucsc/its/temerity/test/Util.kt
+++ b/temerity/src/jvmTest/kotlin/edu/ucsc/its/temerity/test/kotest/Util.kt
@@ -17,7 +17,7 @@
  */
 @file:OptIn(KotestInternal::class)
 
-package edu.ucsc.its.temerity.test
+package edu.ucsc.its.temerity.test.kotest
 
 import edu.ucsc.its.temerity.core.TemClientConfig
 import edu.ucsc.its.temerity.core.Temerity
-- 
GitLab