Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| e828d48798 | |||
| 6e470a9239 |
@@ -1,6 +1,6 @@
|
|||||||
# Maintainer: Hein (Warky Devs) <hein@warky.dev>
|
# Maintainer: Hein (Warky Devs) <hein@warky.dev>
|
||||||
pkgname=relspec
|
pkgname=relspec
|
||||||
pkgver=1.0.51
|
pkgver=1.0.52
|
||||||
pkgrel=1
|
pkgrel=1
|
||||||
pkgdesc="RelSpec is a comprehensive database relations management tool that reads, transforms, and writes database table specifications across multiple formats and ORMs."
|
pkgdesc="RelSpec is a comprehensive database relations management tool that reads, transforms, and writes database table specifications across multiple formats and ORMs."
|
||||||
arch=('x86_64' 'aarch64')
|
arch=('x86_64' 'aarch64')
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
Name: relspec
|
Name: relspec
|
||||||
Version: 1.0.51
|
Version: 1.0.52
|
||||||
Release: 1%{?dist}
|
Release: 1%{?dist}
|
||||||
Summary: RelSpec is a comprehensive database relations management tool that reads, transforms, and writes database table specifications across multiple formats and ORMs.
|
Summary: RelSpec is a comprehensive database relations management tool that reads, transforms, and writes database table specifications across multiple formats and ORMs.
|
||||||
|
|
||||||
|
|||||||
@@ -323,7 +323,7 @@ func (tm *TypeMapper) BuildBunTag(column *models.Column, table *models.Table) st
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
parts = append(parts, fmt.Sprintf("type:%s", typeStr))
|
parts = append(parts, fmt.Sprintf("type:%s", typeStr))
|
||||||
if isArray {
|
if isArray && tm.typeStyle == writers.NullableTypeStdlib {
|
||||||
parts = append(parts, "array")
|
parts = append(parts, "array")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -696,7 +696,7 @@ func TestTypeMapper_BuildBunTag(t *testing.T) {
|
|||||||
Type: "text[]",
|
Type: "text[]",
|
||||||
NotNull: false,
|
NotNull: false,
|
||||||
},
|
},
|
||||||
want: []string{"tags,", "type:text[],", "array,"},
|
want: []string{"tags,", "type:text[],"},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "integer array type",
|
name: "integer array type",
|
||||||
@@ -705,7 +705,7 @@ func TestTypeMapper_BuildBunTag(t *testing.T) {
|
|||||||
Type: "integer[]",
|
Type: "integer[]",
|
||||||
NotNull: true,
|
NotNull: true,
|
||||||
},
|
},
|
||||||
want: []string{"scores,", "type:integer[],", "array,"},
|
want: []string{"scores,", "type:integer[],"},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -717,6 +717,30 @@ func TestTypeMapper_BuildBunTag(t *testing.T) {
|
|||||||
t.Errorf("BuildBunTag() = %q, missing %q", result, part)
|
t.Errorf("BuildBunTag() = %q, missing %q", result, part)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// resolvespec mode must NOT add "array" — SqlXxxArray uses sql.Scanner
|
||||||
|
if strings.Contains(result, ",array,") || strings.HasSuffix(result, ",array,") {
|
||||||
|
t.Errorf("BuildBunTag() = %q, must not contain 'array' in resolvespec mode", result)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestTypeMapper_BuildBunTag_StdlibArrayHasArrayTag(t *testing.T) {
|
||||||
|
mapper := NewTypeMapper(writers.NullableTypeStdlib)
|
||||||
|
|
||||||
|
cases := []struct {
|
||||||
|
name string
|
||||||
|
column *models.Column
|
||||||
|
}{
|
||||||
|
{name: "text array", column: &models.Column{Name: "tags", Type: "text[]"}},
|
||||||
|
{name: "integer array", column: &models.Column{Name: "scores", Type: "integer[]", NotNull: true}},
|
||||||
|
}
|
||||||
|
for _, tt := range cases {
|
||||||
|
t.Run(tt.name, func(t *testing.T) {
|
||||||
|
result := mapper.BuildBunTag(tt.column, nil)
|
||||||
|
if !strings.Contains(result, "array") {
|
||||||
|
t.Errorf("BuildBunTag() = %q, expected 'array' in stdlib mode", result)
|
||||||
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user