Skip to content

Commit 7376044

Browse files
committed
snapshot testing
1 parent cb33148 commit 7376044

19 files changed

+277
-1332
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,3 +66,4 @@ coverage.json
6666
tests/integration/verified_codemods/codemod_data/repo_commits.json
6767
target/*
6868
.benchmarks/*
69+
**.snap.new

Cargo.lock

Lines changed: 66 additions & 55 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,3 +47,7 @@ mockall = "0.13.1"
4747
codegen-sdk-common = { path = "codegen-sdk-common" }
4848
codegen-sdk-cst = { path = "codegen-sdk-cst", features = ["typescript"]}
4949
codegen-sdk-ast = { path = "codegen-sdk-ast" }
50+
51+
[profile.dev.package]
52+
insta.opt-level = 3
53+
similar.opt-level = 3

codegen-sdk-cst-generator/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,6 @@ tempfile = "3.8.1"
1717
mockall_double = "0.3.1"
1818

1919
[dev-dependencies]
20-
assert-tokenstreams-eq = "0.1.0"
2120
tree-sitter-python = { workspace = true }
2221
test-log = { workspace = true }
22+
insta = "1.42.1"

codegen-sdk-cst-generator/src/generator.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ use mockall_double::double;
44
use state::State;
55
mod constants;
66
mod field;
7-
mod format;
7+
pub(crate) mod format;
88
mod node;
99
mod state;
1010
mod utils;

codegen-sdk-cst-generator/src/generator/field.rs

Lines changed: 7 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,7 @@ mod tests {
180180
use codegen_sdk_common::parser::TypeDefinition;
181181

182182
use super::*;
183-
use crate::test_util::get_language_no_nodes;
183+
use crate::test_util::{get_language_no_nodes, snapshot_tokens};
184184
fn create_test_field_definition(name: &str, multiple: bool, required: bool) -> FieldDefinition {
185185
FieldDefinition {
186186
types: vec![TypeDefinition {
@@ -249,74 +249,35 @@ mod tests {
249249
let field_definition = create_test_field_definition("test_type", false, true);
250250
let language = get_language_no_nodes();
251251
let field = Field::new("test_node", "test_field", &field_definition, &language);
252-
253-
assert_eq!(
254-
field.get_struct_field().to_string(),
255-
quote! {
256-
#[rkyv(omit_bounds)]
257-
pub test_field: Box<TestType>
258-
}
259-
.to_string()
260-
);
252+
snapshot_tokens(&field.get_struct_field());
261253

262254
// Test optional field
263255
let optional_definition = create_test_field_definition("test_type", false, false);
264-
let language = get_language_no_nodes();
265256
let optional_field = Field::new("test_node", "test_field", &optional_definition, &language);
266-
267-
assert_eq!(
268-
optional_field.get_struct_field().to_string(),
269-
quote! {
270-
#[rkyv(omit_bounds)]
271-
pub test_field: Box<Option<TestType>>
272-
}
273-
.to_string()
274-
);
257+
snapshot_tokens(&optional_field.get_struct_field());
275258

276259
// Test multiple field
277260
let multiple_definition = create_test_field_definition("test_type", true, true);
278261
let multiple_field = Field::new("test_node", "test_field", &multiple_definition, &language);
279-
280-
assert_eq!(
281-
multiple_field.get_struct_field().to_string(),
282-
quote! {
283-
#[rkyv(omit_bounds)]
284-
pub test_field: Vec<TestType>
285-
}
286-
.to_string()
287-
);
262+
snapshot_tokens(&multiple_field.get_struct_field());
288263
}
289264

290265
#[test]
291266
fn test_get_constructor_field() {
292267
let field_definition = create_test_field_definition("test_type", false, true);
293268
let language = get_language_no_nodes();
294269
let field = Field::new("test_node", "test_field", &field_definition, &language);
295-
296-
assert_eq!(
297-
field.get_constructor_field().to_string(),
298-
quote!(test_field: Box::new(get_child_by_field_name(&node, "test_field", buffer)?))
299-
.to_string()
300-
);
270+
snapshot_tokens(&field.get_constructor_field());
301271

302272
// Test optional field
303273
let optional_definition = create_test_field_definition("test_type", false, false);
304274
let optional_field = Field::new("test_node", "test_field", &optional_definition, &language);
305-
306-
assert_eq!(
307-
optional_field.get_constructor_field().to_string(),
308-
quote!(test_field: Box::new(get_optional_child_by_field_name(&node, "test_field", buffer)?)).to_string()
309-
);
275+
snapshot_tokens(&optional_field.get_constructor_field());
310276

311277
// Test multiple field
312278
let multiple_definition = create_test_field_definition("test_type", true, true);
313279
let multiple_field = Field::new("test_node", "test_field", &multiple_definition, &language);
314-
315-
assert_eq!(
316-
multiple_field.get_constructor_field().to_string(),
317-
quote!(test_field: get_multiple_children_by_field_name(&node, "test_field", buffer)?)
318-
.to_string()
319-
);
280+
snapshot_tokens(&multiple_field.get_constructor_field());
320281
}
321282

322283
#[test]

0 commit comments

Comments
 (0)