Context("Relation column name", func() { It("Generate foreign key with default column name when relationColumn not available", func() { table, _ := sqlConn.GenTableDef(server, false) Expect(table).To(ContainSubstring("REFERENCES `networks`(id)")) }) It("Generate foreign key with given column same as relationColumn from property", func() { server.Properties = append(server.Properties, schema.NewProperty( "test", "test", "", "test", "string", "subnet", "cidr", "", "varchar(255)", false, false, false, nil, nil, false, )) table, _, err := sqlConn.AlterTableDef(server, false) Expect(err).ToNot(HaveOccurred()) Expect(table).To(ContainSubstring("REFERENCES `subnets`(cidr)")) }) }) Context("With default cascade option", func() {
Expect(table).To(ContainSubstring("REFERENCES `networks`(id) on delete cascade);")) table = sqlConn.GenTableDef(subnet, false) Expect(table).ToNot(ContainSubstring("REFERENCES `networks`(id) on delete cascade);")) }) }) Context("Properties modifed", func() { It("Generate proper alter table statements", func() { server.Properties = append(server.Properties, schema.NewProperty( "test", "test", "", "test", "string", "", "", "varchar(255)", false, false, false, nil, nil, )) table, err := sqlConn.AlterTableDef(server, true) Expect(err).ToNot(HaveOccurred()) Expect(table).To(ContainSubstring("alter table`servers` add (`test`varchar(255));")) }) }) }) })