Skip to content

Commit 22dea68

Browse files
committed
chore: add test
1 parent ed02300 commit 22dea68

File tree

1 file changed

+63
-0
lines changed
  • crates/pgt_workspace/src/workspace/server

1 file changed

+63
-0
lines changed

crates/pgt_workspace/src/workspace/server/change.rs

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1116,6 +1116,69 @@ mod tests {
11161116
assert_document_integrity(&doc);
11171117
}
11181118

1119+
#[test]
1120+
fn comment_at_begin() {
1121+
let path = PgTPath::new("test.sql");
1122+
1123+
let mut doc = Document::new(path.clone(), "-- Add new schema named \"private\"\nCREATE SCHEMA \"private\";".to_string(), 0);
1124+
1125+
let change = ChangeFileParams {
1126+
path: path.clone(),
1127+
version: 1,
1128+
changes: vec![ChangeParams {
1129+
text: "".to_string(),
1130+
range: Some(TextRange::new(0.into(), 1.into())),
1131+
}],
1132+
};
1133+
1134+
let changed = doc.apply_file_change(&change);
1135+
1136+
assert_eq!(doc.content, "- Add new schema named \"private\"\nCREATE SCHEMA \"private\";");
1137+
1138+
assert_eq!(changed.len(), 3);
1139+
assert!(matches!(
1140+
changed[0],
1141+
StatementChange::Deleted(Statement { id: 0, .. })
1142+
));
1143+
assert!(matches!(
1144+
changed[1],
1145+
StatementChange::Added(AddedStatement { .. })
1146+
));
1147+
assert!(matches!(
1148+
changed[2],
1149+
StatementChange::Added(AddedStatement { .. })
1150+
));
1151+
1152+
let change_2 = ChangeFileParams {
1153+
path: path.clone(),
1154+
version: 2,
1155+
changes: vec![ChangeParams {
1156+
text: "-".to_string(),
1157+
range: Some(TextRange::new(0.into(), 0.into())),
1158+
}],
1159+
};
1160+
1161+
let changed_2 = doc.apply_file_change(&change_2);
1162+
1163+
assert_eq!(doc.content, "-- Add new schema named \"private\"\nCREATE SCHEMA \"private\";");
1164+
1165+
assert_eq!(changed_2.len(), 3);
1166+
assert!(matches!(
1167+
changed_2[0],
1168+
StatementChange::Deleted(Statement { .. })
1169+
));
1170+
assert!(matches!(
1171+
changed_2[1],
1172+
StatementChange::Deleted(Statement { .. })
1173+
));
1174+
assert!(matches!(
1175+
changed_2[2],
1176+
StatementChange::Added(AddedStatement { .. })
1177+
));
1178+
1179+
assert_document_integrity(&doc);
1180+
}
1181+
11191182
#[test]
11201183
fn apply_changes_within_statement() {
11211184
let input = "select id from users;\nselect * from contacts;";

0 commit comments

Comments
 (0)