From 30e02dc9c07bbc0bf89f36d27f9c00b9b84b8123 Mon Sep 17 00:00:00 2001 From: Volker Lieber <42102008+VolkerLieber@users.noreply.github.com> Date: Wed, 25 Sep 2024 15:45:06 +0200 Subject: [PATCH] Implemented postgres generator comment tests https://github.com/go-jet/jet-test-data/pull/6 --- tests/postgres/generator_test.go | 111 +++++++++++++++++++++++++++++++ 1 file changed, 111 insertions(+) diff --git a/tests/postgres/generator_test.go b/tests/postgres/generator_test.go index fe1407f..87a7eee 100644 --- a/tests/postgres/generator_test.go +++ b/tests/postgres/generator_test.go @@ -604,6 +604,7 @@ func TestGeneratedAllTypesSQLBuilderFiles(t *testing.T) { "mood.go", "person.go", "person_phone.go", "weird_names_table.go", "level.go", "user.go", "floats.go", "people.go", "components.go", "vulnerabilities.go", "all_types_materialized_view.go", "sample_ranges.go") testutils.AssertFileContent(t, modelDir+"/all_types.go", allTypesModelContent) + testutils.AssertFileContent(t, modelDir+"/link.go", linkModelContent) testutils.AssertFileNamesEqual(t, tableDir, "all_types.go", "employee.go", "link.go", "person.go", "person_phone.go", "weird_names_table.go", "user.go", "floats.go", "people.go", "table_use_schema.go", @@ -611,6 +612,8 @@ func TestGeneratedAllTypesSQLBuilderFiles(t *testing.T) { testutils.AssertFileContent(t, tableDir+"/all_types.go", allTypesTableContent) testutils.AssertFileContent(t, tableDir+"/sample_ranges.go", sampleRangeTableContent) + testutils.AssertFileContent(t, tableDir+"/link.go", linkTableContent) + testutils.AssertFileNamesEqual(t, viewDir, "all_types_materialized_view.go", "all_types_view.go", "view_use_schema.go") } @@ -650,6 +653,7 @@ package enum import "github.com/go-jet/jet/v2/postgres" +// Level enum var Level = &struct { Level1 postgres.StringExpression Level2 postgres.StringExpression @@ -747,6 +751,25 @@ type AllTypes struct { } ` +var linkModelContent = ` +// +// Code generated by go-jet DO NOT EDIT. +// +// WARNING: Changes to this file may cause incorrect behavior +// and will be lost if the code is regenerated +// + +package model + +// Link table +type Link struct { + ID int64 ` + "`sql:\"primary_key\"`" + ` // this is link id + URL string // link url + Name string // Unicode characters comment ₲鬼佬℧⇄↻ + Description *string // '"Z\%_ +} +` + var allTypesTableContent = ` // // Code generated by go-jet DO NOT EDIT. @@ -1103,3 +1126,91 @@ func newSampleRangesTableImpl(schemaName, tableName, alias string) sampleRangesT } } ` + +var linkTableContent = ` +// +// Code generated by go-jet DO NOT EDIT. +// +// WARNING: Changes to this file may cause incorrect behavior +// and will be lost if the code is regenerated +// + +package table + +import ( + "github.com/go-jet/jet/v2/postgres" +) + +var Link = newLinkTable("test_sample", "link", "") + +// Link table +type linkTable struct { + postgres.Table + + // Columns + ID postgres.ColumnInteger // this is link id + URL postgres.ColumnString // link url + Name postgres.ColumnString // Unicode characters comment ₲鬼佬℧⇄↻ + Description postgres.ColumnString // '"Z\%_ + + AllColumns postgres.ColumnList + MutableColumns postgres.ColumnList +} + +type LinkTable struct { + linkTable + + EXCLUDED linkTable +} + +// AS creates new LinkTable with assigned alias +func (a LinkTable) AS(alias string) *LinkTable { + return newLinkTable(a.SchemaName(), a.TableName(), alias) +} + +// Schema creates new LinkTable with assigned schema name +func (a LinkTable) FromSchema(schemaName string) *LinkTable { + return newLinkTable(schemaName, a.TableName(), a.Alias()) +} + +// WithPrefix creates new LinkTable with assigned table prefix +func (a LinkTable) WithPrefix(prefix string) *LinkTable { + return newLinkTable(a.SchemaName(), prefix+a.TableName(), a.TableName()) +} + +// WithSuffix creates new LinkTable with assigned table suffix +func (a LinkTable) WithSuffix(suffix string) *LinkTable { + return newLinkTable(a.SchemaName(), a.TableName()+suffix, a.TableName()) +} + +func newLinkTable(schemaName, tableName, alias string) *LinkTable { + return &LinkTable{ + linkTable: newLinkTableImpl(schemaName, tableName, alias), + EXCLUDED: newLinkTableImpl("", "excluded", ""), + } +} + +func newLinkTableImpl(schemaName, tableName, alias string) linkTable { + var ( + IDColumn = postgres.IntegerColumn("id") + URLColumn = postgres.StringColumn("url") + NameColumn = postgres.StringColumn("name") + DescriptionColumn = postgres.StringColumn("description") + allColumns = postgres.ColumnList{IDColumn, URLColumn, NameColumn, DescriptionColumn} + mutableColumns = postgres.ColumnList{URLColumn, NameColumn, DescriptionColumn} + ) + + return linkTable{ + Table: postgres.NewTable(schemaName, tableName, alias, allColumns...), + + //Columns + ID: IDColumn, + URL: URLColumn, + Name: NameColumn, + Description: DescriptionColumn, + + AllColumns: allColumns, + MutableColumns: mutableColumns, + } +} +`