This commit is contained in:
@@ -19,11 +19,11 @@ func TestParseSchema(t *testing.T) {
|
||||
schema := schema.SchemaFromDB(db)
|
||||
expected_tbls := []string{"food_types", "foods", "units", "ingredients", "recipes", "iterations", "db_version"}
|
||||
for _, tbl_name := range expected_tbls {
|
||||
_, is_ok := schema[tbl_name]
|
||||
_, is_ok := schema.Tables[tbl_name]
|
||||
assert.True(is_ok)
|
||||
}
|
||||
|
||||
foods := schema["foods"]
|
||||
foods := schema.Tables["foods"]
|
||||
assert.Equal(foods.TableName, "foods")
|
||||
assert.Equal(foods.TypeName, "Food")
|
||||
assert.Equal(foods.TypeIDName, "FoodID")
|
||||
@@ -44,11 +44,36 @@ func TestParseSchema(t *testing.T) {
|
||||
assert.Equal(foods.Columns[16].HasDefaultValue, true)
|
||||
assert.Equal(foods.Columns[16].DefaultValue, "100")
|
||||
|
||||
ingredients := schema["ingredients"]
|
||||
ingredients := schema.Tables["ingredients"]
|
||||
assert.Equal(ingredients.Columns[0].Name, "rowid")
|
||||
assert.Equal(ingredients.Columns[0].IsPrimaryKey, true)
|
||||
assert.Equal(ingredients.Columns[1].Name, "food_id")
|
||||
assert.Equal(ingredients.Columns[1].IsForeignKey, true)
|
||||
assert.Equal(ingredients.Columns[1].ForeignKeyTargetTable, "foods")
|
||||
assert.Equal(ingredients.Columns[1].ForeignKeyTargetColumn, "rowid")
|
||||
|
||||
// -------
|
||||
// Indexes
|
||||
// -------
|
||||
|
||||
// Unique index
|
||||
units_name_idx, isOk := schema.Indexes["sqlite_autoindex_units_1"]
|
||||
require.True(t, isOk)
|
||||
assert.True(units_name_idx.IsUnique)
|
||||
assert.Equal("units", units_name_idx.TableName)
|
||||
assert.Equal([]string{"name"}, units_name_idx.Columns)
|
||||
|
||||
// Non-unique, declared index
|
||||
foods_protein_idx, isOk := schema.Indexes["foods_protein"]
|
||||
require.True(t, isOk)
|
||||
assert.False(foods_protein_idx.IsUnique)
|
||||
assert.Equal("foods", foods_protein_idx.TableName)
|
||||
assert.Equal([]string{"protein"}, foods_protein_idx.Columns)
|
||||
|
||||
// Multi-column index
|
||||
ingr_seq_idx, isOk := schema.Indexes["sqlite_autoindex_ingredients_1"]
|
||||
require.True(t, isOk)
|
||||
assert.True(ingr_seq_idx.IsUnique)
|
||||
assert.Equal("ingredients", ingr_seq_idx.TableName)
|
||||
assert.Equal([]string{"in_recipe_id", "list_order"}, ingr_seq_idx.Columns)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user