@@ -2,7 +2,9 @@ package usecase
22
33import (
44 "context"
5+ "strings"
56 "testing"
7+ "time"
68
79 "github.com/google/uuid"
810 _ "github.com/mattn/go-sqlite3"
@@ -57,6 +59,14 @@ func TestExtensionRuleImporterCreatesGlobalRule(t *testing.T) {
5759 if rule .ActiveVersionID == nil {
5860 t .Fatal ("active version id is nil" )
5961 }
62+ version , err := client .AgentRuleVersion .Get (ctx , * rule .ActiveVersionID )
63+ if err != nil {
64+ t .Fatal (err )
65+ }
66+ assertRuleVersionFormat (t , version .Version )
67+ if version .Version == pkg .Version {
68+ t .Fatalf ("rule version should not use package version %q" , pkg .Version )
69+ }
6070}
6171
6272func TestExtensionRuleImporterUpdatesSamePackageRule (t * testing.T ) {
@@ -93,6 +103,28 @@ func TestExtensionRuleImporterUpdatesSamePackageRule(t *testing.T) {
93103 if count != 2 {
94104 t .Fatalf ("version count = %d" , count )
95105 }
106+ versions , err := client .AgentRuleVersion .Query ().All (ctx )
107+ if err != nil {
108+ t .Fatal (err )
109+ }
110+ for _ , version := range versions {
111+ assertRuleVersionFormat (t , version .Version )
112+ if strings .HasPrefix (version .Version , "1.0." ) {
113+ t .Fatalf ("rule version should not use package version %q" , version .Version )
114+ }
115+ }
116+ rule , err := client .AgentRule .Query ().Only (ctx )
117+ if err != nil {
118+ t .Fatal (err )
119+ }
120+ active , err := client .AgentRuleVersion .Get (ctx , * rule .ActiveVersionID )
121+ if err != nil {
122+ t .Fatal (err )
123+ }
124+ assertRuleVersionFormat (t , active .Version )
125+ if active .Content != "v2" {
126+ t .Fatalf ("active content = %q, want v2" , active .Content )
127+ }
96128}
97129
98130func TestExtensionRuleImporterRejectsNameConflict (t * testing.T ) {
@@ -126,3 +158,13 @@ func TestExtensionRuleImporterRejectsNameConflict(t *testing.T) {
126158 t .Fatal ("ImportRules should reject same rule name from different package" )
127159 }
128160}
161+
162+ func assertRuleVersionFormat (t * testing.T , version string ) {
163+ t .Helper ()
164+ if len (version ) != 14 {
165+ t .Fatalf ("rule version = %q, want 14-char timestamp" , version )
166+ }
167+ if _ , err := time .Parse (VersionFormat , version ); err != nil {
168+ t .Fatalf ("rule version = %q does not match %s: %v" , version , VersionFormat , err )
169+ }
170+ }
0 commit comments