feat: references check
... and fixes: parse fields without tags and other logical errors
This commit is contained in:
24
tests/testdata/src/references_check/negative.go
vendored
Normal file
24
tests/testdata/src/references_check/negative.go
vendored
Normal file
@@ -0,0 +1,24 @@
|
||||
package references_check
|
||||
|
||||
type WorkArea struct {
|
||||
Id uint `gorm:"primaryKey"`
|
||||
Workshop Workshop `gorm:"foreignKey:WorkshopId;references:Id;"`
|
||||
WorkshopId uint
|
||||
}
|
||||
|
||||
type Workshop struct {
|
||||
Id uint `gorm:"primaryKey"`
|
||||
Name string
|
||||
WorkAreas []WorkArea `gorm:"constraint:OnDelete:CASCADE;"`
|
||||
}
|
||||
|
||||
type TeamType struct {
|
||||
Code uint `gorm:"primaryKey"`
|
||||
Name string `gorm:"not null"`
|
||||
}
|
||||
|
||||
type TeamTask struct {
|
||||
Id uint `gorm:"primaryKey"`
|
||||
TeamTypeId uint
|
||||
TeamType TeamType `gorm:"references:Code;"`
|
||||
}
|
||||
19
tests/testdata/src/references_check/positive.go
vendored
Normal file
19
tests/testdata/src/references_check/positive.go
vendored
Normal file
@@ -0,0 +1,19 @@
|
||||
package references_check
|
||||
|
||||
type User struct {
|
||||
Name string
|
||||
CompanyID string
|
||||
Company Company `gorm:"references:code"` // want "Related field \"code\" doesn't exist on model \"Company\""
|
||||
}
|
||||
|
||||
type Company struct {
|
||||
ID int
|
||||
Code string
|
||||
Name string
|
||||
}
|
||||
|
||||
type Order struct {
|
||||
Id uint `gorm:"primaryKey"`
|
||||
CompanyID string `gorm:"references:Code"` // want "Related model \"string\" doesn't exist"
|
||||
Company Company
|
||||
}
|
||||
Reference in New Issue
Block a user