Matrix: create table, DDL, and app-command coverage

55 tests covering create table, drop column, drop relationship
(endpoints + by-name), add relationship, rename/change column, and
all app-lifecycle commands. The drop-column and relationship tests
drove the §2.2 writes_table fix in the previous commit.

Documents one UX wrinkle as a flagged finding: partial entry words
(`qu`) classify as DefiniteErrorAt — same as unknown commands —
because the walker only engages on a complete entry word.

859 baseline -> 989 passing; 1 ignored (pre-existing doc-test).
This commit is contained in:
claude@clouddev1
2026-05-15 20:50:56 +00:00
parent 216e7ba61b
commit c7ecc64757
63 changed files with 2656 additions and 6 deletions
@@ -0,0 +1,47 @@
---
source: tests/typing_surface/add_relationship.rs
description: "input=\"add 1:n relationship from Customers.id to \" cursor=42"
expression: "& a"
---
Assessment {
input: "add 1:n relationship from Customers.id to ",
cursor: 42,
state: IncompleteAtEof,
hint: Some(
Candidates {
items: [
Candidate {
text: "Customers",
kind: Identifier,
},
Candidate {
text: "Orders",
kind: Identifier,
},
],
selected: None,
},
),
completion: Some(
Completion {
replaced_range: (
42,
42,
),
partial_prefix: "",
candidates: [
Candidate {
text: "Customers",
kind: Identifier,
},
Candidate {
text: "Orders",
kind: Identifier,
},
],
},
),
parse_result: Err(
"Invalid(at_eof)",
),
}
@@ -0,0 +1,19 @@
---
source: tests/typing_surface/add_relationship.rs
description: "input=\"add 1:n relationship from Customers.id to Orders.CustId --create-fk\" cursor=67"
expression: "& a"
---
Assessment {
input: "add 1:n relationship from Customers.id to Orders.CustId --create-fk",
cursor: 67,
state: Valid,
hint: Some(
Prose(
"Submit with Enter",
),
),
completion: None,
parse_result: Ok(
"AddRelationship",
),
}
@@ -0,0 +1,19 @@
---
source: tests/typing_surface/add_relationship.rs
description: "input=\"add 1:n relationship from Customers.id to Orders.CustId on delete cascade\" cursor=73"
expression: "& a"
---
Assessment {
input: "add 1:n relationship from Customers.id to Orders.CustId on delete cascade",
cursor: 73,
state: Valid,
hint: Some(
Prose(
"Submit with Enter",
),
),
completion: None,
parse_result: Ok(
"AddRelationship",
),
}
@@ -0,0 +1,47 @@
---
source: tests/typing_surface/add_relationship.rs
description: "input=\"add \" cursor=4"
expression: "& a"
---
Assessment {
input: "add ",
cursor: 4,
state: IncompleteAtEof,
hint: Some(
Candidates {
items: [
Candidate {
text: "column",
kind: Keyword,
},
Candidate {
text: "1:n",
kind: Keyword,
},
],
selected: None,
},
),
completion: Some(
Completion {
replaced_range: (
4,
4,
),
partial_prefix: "",
candidates: [
Candidate {
text: "column",
kind: Keyword,
},
Candidate {
text: "1:n",
kind: Keyword,
},
],
},
),
parse_result: Err(
"Invalid(at_eof)",
),
}
@@ -0,0 +1,55 @@
---
source: tests/typing_surface/add_relationship.rs
description: "input=\"add 1:n relationship from Customers.id to Orders.\" cursor=49"
expression: "& a"
---
Assessment {
input: "add 1:n relationship from Customers.id to Orders.",
cursor: 49,
state: IncompleteAtEof,
hint: Some(
Candidates {
items: [
Candidate {
text: "CustId",
kind: Identifier,
},
Candidate {
text: "OrderId",
kind: Identifier,
},
Candidate {
text: "Total",
kind: Identifier,
},
],
selected: None,
},
),
completion: Some(
Completion {
replaced_range: (
49,
49,
),
partial_prefix: "",
candidates: [
Candidate {
text: "CustId",
kind: Identifier,
},
Candidate {
text: "OrderId",
kind: Identifier,
},
Candidate {
text: "Total",
kind: Identifier,
},
],
},
),
parse_result: Err(
"Invalid(at_eof)",
),
}
@@ -0,0 +1,47 @@
---
source: tests/typing_surface/add_relationship.rs
description: "input=\"add 1:n relationship from \" cursor=26"
expression: "& a"
---
Assessment {
input: "add 1:n relationship from ",
cursor: 26,
state: IncompleteAtEof,
hint: Some(
Candidates {
items: [
Candidate {
text: "Customers",
kind: Identifier,
},
Candidate {
text: "Orders",
kind: Identifier,
},
],
selected: None,
},
),
completion: Some(
Completion {
replaced_range: (
26,
26,
),
partial_prefix: "",
candidates: [
Candidate {
text: "Customers",
kind: Identifier,
},
Candidate {
text: "Orders",
kind: Identifier,
},
],
},
),
parse_result: Err(
"Invalid(at_eof)",
),
}
@@ -0,0 +1,47 @@
---
source: tests/typing_surface/add_relationship.rs
description: "input=\"add 1:n relationship from Customers.\" cursor=36"
expression: "& a"
---
Assessment {
input: "add 1:n relationship from Customers.",
cursor: 36,
state: IncompleteAtEof,
hint: Some(
Candidates {
items: [
Candidate {
text: "Name",
kind: Identifier,
},
Candidate {
text: "id",
kind: Identifier,
},
],
selected: None,
},
),
completion: Some(
Completion {
replaced_range: (
36,
36,
),
partial_prefix: "",
candidates: [
Candidate {
text: "Name",
kind: Identifier,
},
Candidate {
text: "id",
kind: Identifier,
},
],
},
),
parse_result: Err(
"Invalid(at_eof)",
),
}
@@ -0,0 +1,19 @@
---
source: tests/typing_surface/add_relationship.rs
description: "input=\"add 1:n relationship from Customers.id to Orders.CustId\" cursor=55"
expression: "& a"
---
Assessment {
input: "add 1:n relationship from Customers.id to Orders.CustId",
cursor: 55,
state: Valid,
hint: Some(
Prose(
"Submit with Enter",
),
),
completion: None,
parse_result: Ok(
"AddRelationship",
),
}
@@ -0,0 +1,47 @@
---
source: tests/typing_surface/add_relationship.rs
description: "input=\"add 1:n relationship \" cursor=21"
expression: "& a"
---
Assessment {
input: "add 1:n relationship ",
cursor: 21,
state: IncompleteAtEof,
hint: Some(
Candidates {
items: [
Candidate {
text: "from",
kind: Keyword,
},
Candidate {
text: "as",
kind: Keyword,
},
],
selected: None,
},
),
completion: Some(
Completion {
replaced_range: (
21,
21,
),
partial_prefix: "",
candidates: [
Candidate {
text: "from",
kind: Keyword,
},
Candidate {
text: "as",
kind: Keyword,
},
],
},
),
parse_result: Err(
"Invalid(at_eof)",
),
}
@@ -0,0 +1,19 @@
---
source: tests/typing_surface/app_commands.rs
description: "input=\"export\" cursor=6"
expression: "& a"
---
Assessment {
input: "export",
cursor: 6,
state: Valid,
hint: Some(
Prose(
"Submit with Enter",
),
),
completion: None,
parse_result: Ok(
"App(Export)",
),
}
@@ -0,0 +1,19 @@
---
source: tests/typing_surface/app_commands.rs
description: "input=\"export myproject.zip\" cursor=20"
expression: "& a"
---
Assessment {
input: "export myproject.zip",
cursor: 20,
state: Valid,
hint: Some(
Prose(
"Submit with Enter",
),
),
completion: None,
parse_result: Ok(
"App(Export)",
),
}
@@ -0,0 +1,19 @@
---
source: tests/typing_surface/app_commands.rs
description: "input=\"help\" cursor=4"
expression: "& a"
---
Assessment {
input: "help",
cursor: 4,
state: Valid,
hint: Some(
Prose(
"Submit with Enter",
),
),
completion: None,
parse_result: Ok(
"App(Help)",
),
}
@@ -0,0 +1,19 @@
---
source: tests/typing_surface/app_commands.rs
description: "input=\"import bundle.zip\" cursor=17"
expression: "& a"
---
Assessment {
input: "import bundle.zip",
cursor: 17,
state: Valid,
hint: Some(
Prose(
"Submit with Enter",
),
),
completion: None,
parse_result: Ok(
"App(Import)",
),
}
@@ -0,0 +1,19 @@
---
source: tests/typing_surface/app_commands.rs
description: "input=\"load\" cursor=4"
expression: "& a"
---
Assessment {
input: "load",
cursor: 4,
state: Valid,
hint: Some(
Prose(
"Submit with Enter",
),
),
completion: None,
parse_result: Ok(
"App(Load)",
),
}
@@ -0,0 +1,47 @@
---
source: tests/typing_surface/app_commands.rs
description: "input=\"messages \" cursor=9"
expression: "& a"
---
Assessment {
input: "messages ",
cursor: 9,
state: Valid,
hint: Some(
Candidates {
items: [
Candidate {
text: "short",
kind: Keyword,
},
Candidate {
text: "verbose",
kind: Keyword,
},
],
selected: None,
},
),
completion: Some(
Completion {
replaced_range: (
9,
9,
),
partial_prefix: "",
candidates: [
Candidate {
text: "short",
kind: Keyword,
},
Candidate {
text: "verbose",
kind: Keyword,
},
],
},
),
parse_result: Ok(
"App(Messages)",
),
}
@@ -0,0 +1,19 @@
---
source: tests/typing_surface/app_commands.rs
description: "input=\"messages\" cursor=8"
expression: "& a"
---
Assessment {
input: "messages",
cursor: 8,
state: Valid,
hint: Some(
Prose(
"Submit with Enter",
),
),
completion: None,
parse_result: Ok(
"App(Messages)",
),
}
@@ -0,0 +1,19 @@
---
source: tests/typing_surface/app_commands.rs
description: "input=\"messages verbose\" cursor=16"
expression: "& a"
---
Assessment {
input: "messages verbose",
cursor: 16,
state: Valid,
hint: Some(
Prose(
"Submit with Enter",
),
),
completion: None,
parse_result: Ok(
"App(Messages)",
),
}
@@ -0,0 +1,47 @@
---
source: tests/typing_surface/app_commands.rs
description: "input=\"mode \" cursor=5"
expression: "& a"
---
Assessment {
input: "mode ",
cursor: 5,
state: IncompleteAtEof,
hint: Some(
Candidates {
items: [
Candidate {
text: "simple",
kind: Keyword,
},
Candidate {
text: "advanced",
kind: Keyword,
},
],
selected: None,
},
),
completion: Some(
Completion {
replaced_range: (
5,
5,
),
partial_prefix: "",
candidates: [
Candidate {
text: "simple",
kind: Keyword,
},
Candidate {
text: "advanced",
kind: Keyword,
},
],
},
),
parse_result: Err(
"Invalid(at_eof)",
),
}
@@ -0,0 +1,19 @@
---
source: tests/typing_surface/app_commands.rs
description: "input=\"mode advanced\" cursor=13"
expression: "& a"
---
Assessment {
input: "mode advanced",
cursor: 13,
state: Valid,
hint: Some(
Prose(
"Submit with Enter",
),
),
completion: None,
parse_result: Ok(
"App(Mode)",
),
}
@@ -0,0 +1,19 @@
---
source: tests/typing_surface/app_commands.rs
description: "input=\"new\" cursor=3"
expression: "& a"
---
Assessment {
input: "new",
cursor: 3,
state: Valid,
hint: Some(
Prose(
"Submit with Enter",
),
),
completion: None,
parse_result: Ok(
"App(New)",
),
}
@@ -0,0 +1,41 @@
---
source: tests/typing_surface/app_commands.rs
description: "input=\"qu\" cursor=2"
expression: "& a"
---
Assessment {
input: "qu",
cursor: 2,
state: DefiniteErrorAt(
0,
),
hint: Some(
Candidates {
items: [
Candidate {
text: "quit",
kind: Keyword,
},
],
selected: None,
},
),
completion: Some(
Completion {
replaced_range: (
0,
2,
),
partial_prefix: "qu",
candidates: [
Candidate {
text: "quit",
kind: Keyword,
},
],
},
),
parse_result: Err(
"Invalid(definite)",
),
}
@@ -0,0 +1,19 @@
---
source: tests/typing_surface/app_commands.rs
description: "input=\"quit\" cursor=4"
expression: "& a"
---
Assessment {
input: "quit",
cursor: 4,
state: Valid,
hint: Some(
Prose(
"Submit with Enter",
),
),
completion: None,
parse_result: Ok(
"App(Quit)",
),
}
@@ -0,0 +1,19 @@
---
source: tests/typing_surface/app_commands.rs
description: "input=\"rebuild\" cursor=7"
expression: "& a"
---
Assessment {
input: "rebuild",
cursor: 7,
state: Valid,
hint: Some(
Prose(
"Submit with Enter",
),
),
completion: None,
parse_result: Ok(
"App(Rebuild)",
),
}
@@ -0,0 +1,19 @@
---
source: tests/typing_surface/app_commands.rs
description: "input=\"save as\" cursor=7"
expression: "& a"
---
Assessment {
input: "save as",
cursor: 7,
state: Valid,
hint: Some(
Prose(
"Submit with Enter",
),
),
completion: None,
parse_result: Ok(
"App(SaveAs)",
),
}
@@ -0,0 +1,19 @@
---
source: tests/typing_surface/app_commands.rs
description: "input=\"save\" cursor=4"
expression: "& a"
---
Assessment {
input: "save",
cursor: 4,
state: Valid,
hint: Some(
Prose(
"Submit with Enter",
),
),
completion: None,
parse_result: Ok(
"App(Save)",
),
}
@@ -0,0 +1,39 @@
---
source: tests/typing_surface/app_commands.rs
description: "input=\"save \" cursor=5"
expression: "& a"
---
Assessment {
input: "save ",
cursor: 5,
state: Valid,
hint: Some(
Candidates {
items: [
Candidate {
text: "as",
kind: Keyword,
},
],
selected: None,
},
),
completion: Some(
Completion {
replaced_range: (
5,
5,
),
partial_prefix: "",
candidates: [
Candidate {
text: "as",
kind: Keyword,
},
],
},
),
parse_result: Ok(
"App(Save)",
),
}
@@ -0,0 +1,111 @@
---
source: tests/typing_surface/create_table.rs
description: "input=\"create table Customers with pk Code:\" cursor=36"
expression: "& a"
---
Assessment {
input: "create table Customers with pk Code:",
cursor: 36,
state: IncompleteAtEof,
hint: Some(
Candidates {
items: [
Candidate {
text: "text",
kind: Keyword,
},
Candidate {
text: "int",
kind: Keyword,
},
Candidate {
text: "real",
kind: Keyword,
},
Candidate {
text: "decimal",
kind: Keyword,
},
Candidate {
text: "bool",
kind: Keyword,
},
Candidate {
text: "date",
kind: Keyword,
},
Candidate {
text: "datetime",
kind: Keyword,
},
Candidate {
text: "blob",
kind: Keyword,
},
Candidate {
text: "serial",
kind: Keyword,
},
Candidate {
text: "shortid",
kind: Keyword,
},
],
selected: None,
},
),
completion: Some(
Completion {
replaced_range: (
36,
36,
),
partial_prefix: "",
candidates: [
Candidate {
text: "text",
kind: Keyword,
},
Candidate {
text: "int",
kind: Keyword,
},
Candidate {
text: "real",
kind: Keyword,
},
Candidate {
text: "decimal",
kind: Keyword,
},
Candidate {
text: "bool",
kind: Keyword,
},
Candidate {
text: "date",
kind: Keyword,
},
Candidate {
text: "datetime",
kind: Keyword,
},
Candidate {
text: "blob",
kind: Keyword,
},
Candidate {
text: "serial",
kind: Keyword,
},
Candidate {
text: "shortid",
kind: Keyword,
},
],
},
),
parse_result: Err(
"Invalid(at_eof)",
),
}
@@ -0,0 +1,39 @@
---
source: tests/typing_surface/create_table.rs
description: "input=\"create \" cursor=7"
expression: "& a"
---
Assessment {
input: "create ",
cursor: 7,
state: IncompleteAtEof,
hint: Some(
Candidates {
items: [
Candidate {
text: "table",
kind: Keyword,
},
],
selected: None,
},
),
completion: Some(
Completion {
replaced_range: (
7,
7,
),
partial_prefix: "",
candidates: [
Candidate {
text: "table",
kind: Keyword,
},
],
},
),
parse_result: Err(
"Invalid(at_eof)",
),
}
@@ -0,0 +1,39 @@
---
source: tests/typing_surface/create_table.rs
description: "input=\"create table Customers \" cursor=23"
expression: "& a"
---
Assessment {
input: "create table Customers ",
cursor: 23,
state: IncompleteAtEof,
hint: Some(
Candidates {
items: [
Candidate {
text: "with",
kind: Keyword,
},
],
selected: None,
},
),
completion: Some(
Completion {
replaced_range: (
23,
23,
),
partial_prefix: "",
candidates: [
Candidate {
text: "with",
kind: Keyword,
},
],
},
),
parse_result: Err(
"Invalid(at_eof)",
),
}
@@ -0,0 +1,19 @@
---
source: tests/typing_surface/create_table.rs
description: "input=\"create table Customers with pk Code\" cursor=35"
expression: "& a"
---
Assessment {
input: "create table Customers with pk Code",
cursor: 35,
state: IncompleteAtEof,
hint: Some(
Prose(
"Next: `:`",
),
),
completion: None,
parse_result: Err(
"Invalid(at_eof)",
),
}
@@ -0,0 +1,19 @@
---
source: tests/typing_surface/create_table.rs
description: "input=\"create table \" cursor=13"
expression: "& a"
---
Assessment {
input: "create table ",
cursor: 13,
state: IncompleteAtEof,
hint: Some(
Prose(
"Type a name",
),
),
completion: None,
parse_result: Err(
"Invalid(at_eof)",
),
}
@@ -0,0 +1,39 @@
---
source: tests/typing_surface/create_table.rs
description: "input=\"create table Customers with \" cursor=28"
expression: "& a"
---
Assessment {
input: "create table Customers with ",
cursor: 28,
state: IncompleteAtEof,
hint: Some(
Candidates {
items: [
Candidate {
text: "pk",
kind: Keyword,
},
],
selected: None,
},
),
completion: Some(
Completion {
replaced_range: (
28,
28,
),
partial_prefix: "",
candidates: [
Candidate {
text: "pk",
kind: Keyword,
},
],
},
),
parse_result: Err(
"Invalid(at_eof)",
),
}
@@ -0,0 +1,19 @@
---
source: tests/typing_surface/create_table.rs
description: "input=\"create table Memberships with pk UserId:int, GroupId:int\" cursor=56"
expression: "& a"
---
Assessment {
input: "create table Memberships with pk UserId:int, GroupId:int",
cursor: 56,
state: Valid,
hint: Some(
Prose(
"Submit with Enter",
),
),
completion: None,
parse_result: Ok(
"CreateTable",
),
}
@@ -0,0 +1,19 @@
---
source: tests/typing_surface/create_table.rs
description: "input=\"create table Customers with pk Code:text\" cursor=40"
expression: "& a"
---
Assessment {
input: "create table Customers with pk Code:text",
cursor: 40,
state: Valid,
hint: Some(
Prose(
"Submit with Enter",
),
),
completion: None,
parse_result: Ok(
"CreateTable",
),
}
@@ -0,0 +1,19 @@
---
source: tests/typing_surface/create_table.rs
description: "input=\"create table Customers with pk\" cursor=30"
expression: "& a"
---
Assessment {
input: "create table Customers with pk",
cursor: 30,
state: Valid,
hint: Some(
Prose(
"Submit with Enter",
),
),
completion: None,
parse_result: Ok(
"CreateTable",
),
}
@@ -0,0 +1,19 @@
---
source: tests/typing_surface/create_table.rs
description: "input=\"create table Customers\" cursor=22"
expression: "& a"
---
Assessment {
input: "create table Customers",
cursor: 22,
state: IncompleteAtEof,
hint: Some(
Prose(
"Type a name",
),
),
completion: None,
parse_result: Err(
"Invalid(at_eof)",
),
}
@@ -0,0 +1,47 @@
---
source: tests/typing_surface/drop_column.rs
description: "input=\"drop column from Customers: \" cursor=28"
expression: "& a"
---
Assessment {
input: "drop column from Customers: ",
cursor: 28,
state: IncompleteAtEof,
hint: Some(
Candidates {
items: [
Candidate {
text: "Name",
kind: Identifier,
},
Candidate {
text: "id",
kind: Identifier,
},
],
selected: None,
},
),
completion: Some(
Completion {
replaced_range: (
28,
28,
),
partial_prefix: "",
candidates: [
Candidate {
text: "Name",
kind: Identifier,
},
Candidate {
text: "id",
kind: Identifier,
},
],
},
),
parse_result: Err(
"Invalid(at_eof)",
),
}
@@ -0,0 +1,55 @@
---
source: tests/typing_surface/drop_column.rs
description: "input=\"drop column from Customers: \" cursor=28"
expression: "& a"
---
Assessment {
input: "drop column from Customers: ",
cursor: 28,
state: IncompleteAtEof,
hint: Some(
Candidates {
items: [
Candidate {
text: "Email",
kind: Identifier,
},
Candidate {
text: "Name",
kind: Identifier,
},
Candidate {
text: "id",
kind: Identifier,
},
],
selected: None,
},
),
completion: Some(
Completion {
replaced_range: (
28,
28,
),
partial_prefix: "",
candidates: [
Candidate {
text: "Email",
kind: Identifier,
},
Candidate {
text: "Name",
kind: Identifier,
},
Candidate {
text: "id",
kind: Identifier,
},
],
},
),
parse_result: Err(
"Invalid(at_eof)",
),
}
@@ -0,0 +1,55 @@
---
source: tests/typing_surface/drop_column.rs
description: "input=\"drop column from \" cursor=17"
expression: "& a"
---
Assessment {
input: "drop column from ",
cursor: 17,
state: IncompleteAtEof,
hint: Some(
Candidates {
items: [
Candidate {
text: "table",
kind: Keyword,
},
Candidate {
text: "Customers",
kind: Identifier,
},
Candidate {
text: "Orders",
kind: Identifier,
},
],
selected: None,
},
),
completion: Some(
Completion {
replaced_range: (
17,
17,
),
partial_prefix: "",
candidates: [
Candidate {
text: "table",
kind: Keyword,
},
Candidate {
text: "Customers",
kind: Identifier,
},
Candidate {
text: "Orders",
kind: Identifier,
},
],
},
),
parse_result: Err(
"Invalid(at_eof)",
),
}
@@ -0,0 +1,39 @@
---
source: tests/typing_surface/drop_column.rs
description: "input=\"drop column from Customers\" cursor=26"
expression: "& a"
---
Assessment {
input: "drop column from Customers",
cursor: 26,
state: IncompleteAtEof,
hint: Some(
Candidates {
items: [
Candidate {
text: "Customers",
kind: Identifier,
},
],
selected: None,
},
),
completion: Some(
Completion {
replaced_range: (
17,
26,
),
partial_prefix: "Customers",
candidates: [
Candidate {
text: "Customers",
kind: Identifier,
},
],
},
),
parse_result: Err(
"Invalid(at_eof)",
),
}
@@ -0,0 +1,19 @@
---
source: tests/typing_surface/drop_column.rs
description: "input=\"drop column from Customers: Email\" cursor=33"
expression: "& a"
---
Assessment {
input: "drop column from Customers: Email",
cursor: 33,
state: Valid,
hint: Some(
Prose(
"Submit with Enter",
),
),
completion: None,
parse_result: Ok(
"DropColumn",
),
}
@@ -0,0 +1,19 @@
---
source: tests/typing_surface/drop_column.rs
description: "input=\"drop column from table Customers: Email\" cursor=39"
expression: "& a"
---
Assessment {
input: "drop column from table Customers: Email",
cursor: 39,
state: Valid,
hint: Some(
Prose(
"Submit with Enter",
),
),
completion: None,
parse_result: Ok(
"DropColumn",
),
}
@@ -0,0 +1,47 @@
---
source: tests/typing_surface/drop_relationship.rs
description: "input=\"drop relationship from Orders.CustId to Customers.\" cursor=50"
expression: "& a"
---
Assessment {
input: "drop relationship from Orders.CustId to Customers.",
cursor: 50,
state: IncompleteAtEof,
hint: Some(
Candidates {
items: [
Candidate {
text: "Name",
kind: Identifier,
},
Candidate {
text: "id",
kind: Identifier,
},
],
selected: None,
},
),
completion: Some(
Completion {
replaced_range: (
50,
50,
),
partial_prefix: "",
candidates: [
Candidate {
text: "Name",
kind: Identifier,
},
Candidate {
text: "id",
kind: Identifier,
},
],
},
),
parse_result: Err(
"Invalid(at_eof)",
),
}
@@ -0,0 +1,47 @@
---
source: tests/typing_surface/drop_relationship.rs
description: "input=\"drop relationship from \" cursor=23"
expression: "& a"
---
Assessment {
input: "drop relationship from ",
cursor: 23,
state: IncompleteAtEof,
hint: Some(
Candidates {
items: [
Candidate {
text: "Customers",
kind: Identifier,
},
Candidate {
text: "Orders",
kind: Identifier,
},
],
selected: None,
},
),
completion: Some(
Completion {
replaced_range: (
23,
23,
),
partial_prefix: "",
candidates: [
Candidate {
text: "Customers",
kind: Identifier,
},
Candidate {
text: "Orders",
kind: Identifier,
},
],
},
),
parse_result: Err(
"Invalid(at_eof)",
),
}
@@ -0,0 +1,55 @@
---
source: tests/typing_surface/drop_relationship.rs
description: "input=\"drop relationship from Orders.\" cursor=30"
expression: "& a"
---
Assessment {
input: "drop relationship from Orders.",
cursor: 30,
state: IncompleteAtEof,
hint: Some(
Candidates {
items: [
Candidate {
text: "CustId",
kind: Identifier,
},
Candidate {
text: "OrderId",
kind: Identifier,
},
Candidate {
text: "Total",
kind: Identifier,
},
],
selected: None,
},
),
completion: Some(
Completion {
replaced_range: (
30,
30,
),
partial_prefix: "",
candidates: [
Candidate {
text: "CustId",
kind: Identifier,
},
Candidate {
text: "OrderId",
kind: Identifier,
},
Candidate {
text: "Total",
kind: Identifier,
},
],
},
),
parse_result: Err(
"Invalid(at_eof)",
),
}
@@ -0,0 +1,47 @@
---
source: tests/typing_surface/drop_relationship.rs
description: "input=\"drop relationship \" cursor=18"
expression: "& a"
---
Assessment {
input: "drop relationship ",
cursor: 18,
state: IncompleteAtEof,
hint: Some(
Candidates {
items: [
Candidate {
text: "from",
kind: Keyword,
},
Candidate {
text: "Orders_CustId_to_Customers",
kind: Identifier,
},
],
selected: None,
},
),
completion: Some(
Completion {
replaced_range: (
18,
18,
),
partial_prefix: "",
candidates: [
Candidate {
text: "from",
kind: Keyword,
},
Candidate {
text: "Orders_CustId_to_Customers",
kind: Identifier,
},
],
},
),
parse_result: Err(
"Invalid(at_eof)",
),
}
@@ -0,0 +1,47 @@
---
source: tests/typing_surface/drop_relationship.rs
description: "input=\"drop relationship from Orders.CustId to \" cursor=40"
expression: "& a"
---
Assessment {
input: "drop relationship from Orders.CustId to ",
cursor: 40,
state: IncompleteAtEof,
hint: Some(
Candidates {
items: [
Candidate {
text: "Customers",
kind: Identifier,
},
Candidate {
text: "Orders",
kind: Identifier,
},
],
selected: None,
},
),
completion: Some(
Completion {
replaced_range: (
40,
40,
),
partial_prefix: "",
candidates: [
Candidate {
text: "Customers",
kind: Identifier,
},
Candidate {
text: "Orders",
kind: Identifier,
},
],
},
),
parse_result: Err(
"Invalid(at_eof)",
),
}
@@ -0,0 +1,19 @@
---
source: tests/typing_surface/drop_relationship.rs
description: "input=\"drop relationship from Orders.CustId to Customers.id\" cursor=52"
expression: "& a"
---
Assessment {
input: "drop relationship from Orders.CustId to Customers.id",
cursor: 52,
state: Valid,
hint: Some(
Prose(
"Submit with Enter",
),
),
completion: None,
parse_result: Ok(
"DropRelationship",
),
}
@@ -0,0 +1,19 @@
---
source: tests/typing_surface/drop_relationship.rs
description: "input=\"drop relationship Orders_CustId_to_Customers\" cursor=44"
expression: "& a"
---
Assessment {
input: "drop relationship Orders_CustId_to_Customers",
cursor: 44,
state: Valid,
hint: Some(
Prose(
"Submit with Enter",
),
),
completion: None,
parse_result: Ok(
"DropRelationship",
),
}
@@ -0,0 +1,47 @@
---
source: tests/typing_surface/rename_change_column.rs
description: "input=\"change column in Customers: \" cursor=28"
expression: "& a"
---
Assessment {
input: "change column in Customers: ",
cursor: 28,
state: IncompleteAtEof,
hint: Some(
Candidates {
items: [
Candidate {
text: "Name",
kind: Identifier,
},
Candidate {
text: "id",
kind: Identifier,
},
],
selected: None,
},
),
completion: Some(
Completion {
replaced_range: (
28,
28,
),
partial_prefix: "",
candidates: [
Candidate {
text: "Name",
kind: Identifier,
},
Candidate {
text: "id",
kind: Identifier,
},
],
},
),
parse_result: Err(
"Invalid(at_eof)",
),
}
@@ -0,0 +1,111 @@
---
source: tests/typing_surface/rename_change_column.rs
description: "input=\"change column in Customers: Email (\" cursor=35"
expression: "& a"
---
Assessment {
input: "change column in Customers: Email (",
cursor: 35,
state: IncompleteAtEof,
hint: Some(
Candidates {
items: [
Candidate {
text: "text",
kind: Keyword,
},
Candidate {
text: "int",
kind: Keyword,
},
Candidate {
text: "real",
kind: Keyword,
},
Candidate {
text: "decimal",
kind: Keyword,
},
Candidate {
text: "bool",
kind: Keyword,
},
Candidate {
text: "date",
kind: Keyword,
},
Candidate {
text: "datetime",
kind: Keyword,
},
Candidate {
text: "blob",
kind: Keyword,
},
Candidate {
text: "serial",
kind: Keyword,
},
Candidate {
text: "shortid",
kind: Keyword,
},
],
selected: None,
},
),
completion: Some(
Completion {
replaced_range: (
35,
35,
),
partial_prefix: "",
candidates: [
Candidate {
text: "text",
kind: Keyword,
},
Candidate {
text: "int",
kind: Keyword,
},
Candidate {
text: "real",
kind: Keyword,
},
Candidate {
text: "decimal",
kind: Keyword,
},
Candidate {
text: "bool",
kind: Keyword,
},
Candidate {
text: "date",
kind: Keyword,
},
Candidate {
text: "datetime",
kind: Keyword,
},
Candidate {
text: "blob",
kind: Keyword,
},
Candidate {
text: "serial",
kind: Keyword,
},
Candidate {
text: "shortid",
kind: Keyword,
},
],
},
),
parse_result: Err(
"Invalid(at_eof)",
),
}
@@ -0,0 +1,19 @@
---
source: tests/typing_surface/rename_change_column.rs
description: "input=\"change column in Customers: Email (int) --force-conversion\" cursor=58"
expression: "& a"
---
Assessment {
input: "change column in Customers: Email (int) --force-conversion",
cursor: 58,
state: Valid,
hint: Some(
Prose(
"Submit with Enter",
),
),
completion: None,
parse_result: Ok(
"ChangeColumnType",
),
}
@@ -0,0 +1,47 @@
---
source: tests/typing_surface/rename_change_column.rs
description: "input=\"change column in Customers: Email (text)\" cursor=40"
expression: "& a"
---
Assessment {
input: "change column in Customers: Email (text)",
cursor: 40,
state: Valid,
hint: Some(
Candidates {
items: [
Candidate {
text: "--force-conversion",
kind: Flag,
},
Candidate {
text: "--dont-convert",
kind: Flag,
},
],
selected: None,
},
),
completion: Some(
Completion {
replaced_range: (
40,
40,
),
partial_prefix: "",
candidates: [
Candidate {
text: "--force-conversion",
kind: Flag,
},
Candidate {
text: "--dont-convert",
kind: Flag,
},
],
},
),
parse_result: Ok(
"ChangeColumnType",
),
}
@@ -0,0 +1,19 @@
---
source: tests/typing_surface/rename_change_column.rs
description: "input=\"rename column in Customers: Email to ContactEmail\" cursor=49"
expression: "& a"
---
Assessment {
input: "rename column in Customers: Email to ContactEmail",
cursor: 49,
state: Valid,
hint: Some(
Prose(
"Type a name",
),
),
completion: None,
parse_result: Ok(
"RenameColumn",
),
}
@@ -0,0 +1,47 @@
---
source: tests/typing_surface/rename_change_column.rs
description: "input=\"rename column in Customers: \" cursor=28"
expression: "& a"
---
Assessment {
input: "rename column in Customers: ",
cursor: 28,
state: IncompleteAtEof,
hint: Some(
Candidates {
items: [
Candidate {
text: "Name",
kind: Identifier,
},
Candidate {
text: "id",
kind: Identifier,
},
],
selected: None,
},
),
completion: Some(
Completion {
replaced_range: (
28,
28,
),
partial_prefix: "",
candidates: [
Candidate {
text: "Name",
kind: Identifier,
},
Candidate {
text: "id",
kind: Identifier,
},
],
},
),
parse_result: Err(
"Invalid(at_eof)",
),
}
@@ -0,0 +1,39 @@
---
source: tests/typing_surface/rename_change_column.rs
description: "input=\"rename column in Customers: Email \" cursor=34"
expression: "& a"
---
Assessment {
input: "rename column in Customers: Email ",
cursor: 34,
state: IncompleteAtEof,
hint: Some(
Candidates {
items: [
Candidate {
text: "to",
kind: Keyword,
},
],
selected: None,
},
),
completion: Some(
Completion {
replaced_range: (
34,
34,
),
partial_prefix: "",
candidates: [
Candidate {
text: "to",
kind: Keyword,
},
],
},
),
parse_result: Err(
"Invalid(at_eof)",
),
}
@@ -0,0 +1,19 @@
---
source: tests/typing_surface/rename_change_column.rs
description: "input=\"rename column in Customers: Email to \" cursor=37"
expression: "& a"
---
Assessment {
input: "rename column in Customers: Email to ",
cursor: 37,
state: IncompleteAtEof,
hint: Some(
Prose(
"Type a name",
),
),
completion: None,
parse_result: Err(
"Invalid(at_eof)",
),
}