Skip to content

Commit 901a794

Browse files
committed
move tests to a separate folder
1 parent 72fad5d commit 901a794

File tree

9 files changed

+1782
-1829
lines changed

9 files changed

+1782
-1829
lines changed

rust/cubetranspilers/src/check_dup_prop_transpiler.rs

Lines changed: 0 additions & 285 deletions
Original file line numberDiff line numberDiff line change
@@ -105,288 +105,3 @@ impl VisitMut for CheckDupPropTransformVisitor<'_> {
105105
call_expr.visit_mut_children_with(self)
106106
}
107107
}
108-
109-
#[cfg(test)]
110-
mod tests {
111-
// Recommended strategy to test plugin's transform is verify
112-
// the Visitor's behavior, instead of trying to run `process_transform` with mocks
113-
// unless explicitly required to do so.
114-
115-
use std::sync::{Arc, Mutex};
116-
117-
use super::*;
118-
use swc_core::ecma::ast::{EsVersion, Program};
119-
use swc_core::{
120-
common::{
121-
errors::{DiagnosticBuilder, Emitter, Handler, HandlerFlags},
122-
sync::Lrc,
123-
FileName, SourceMap,
124-
},
125-
ecma::visit::VisitMutWith,
126-
};
127-
use swc_ecma_parser::{lexer::Lexer, Parser, StringInput, Syntax};
128-
129-
struct TestEmitter {
130-
diagnostics: Arc<Mutex<Vec<String>>>,
131-
}
132-
133-
impl Emitter for TestEmitter {
134-
fn emit(&mut self, diagnostic: &DiagnosticBuilder) {
135-
let mut diags = self.diagnostics.lock().unwrap();
136-
diags.push(diagnostic.message());
137-
}
138-
}
139-
140-
#[test]
141-
fn test_errors_for_duplicates_first_level() {
142-
let cm: Lrc<SourceMap> = Default::default();
143-
let diagnostics = Arc::new(Mutex::new(Vec::new()));
144-
let emitter = Box::new(TestEmitter {
145-
diagnostics: diagnostics.clone(),
146-
});
147-
let handler = Handler::with_emitter_and_flags(
148-
emitter,
149-
HandlerFlags {
150-
can_emit_warnings: true,
151-
..Default::default()
152-
},
153-
);
154-
155-
let js_code = r#"
156-
cube(`cube1`, {
157-
sql: `SELECT * FROM table`,
158-
159-
dimensions: {
160-
id: {
161-
sql: `id`,
162-
type: `number`,
163-
primary_key: true,
164-
},
165-
created_at: {
166-
sql: `created_at`,
167-
type: `time`,
168-
},
169-
dim1Number: {
170-
sql: `dim1Number`,
171-
type: `number`,
172-
},
173-
dim2Number: {
174-
sql: `dim2Number`,
175-
type: `number`,
176-
},
177-
},
178-
179-
dimensions: {
180-
dim2Number: {
181-
sql: `dim2Number`,
182-
type: `number`,
183-
},
184-
},
185-
186-
measures: {
187-
count: {
188-
type: `count`,
189-
sql: `id`,
190-
},
191-
measureDim1: {
192-
sql: `dim1Number`,
193-
type:
194-
`max`,
195-
},
196-
measureDim2: {
197-
sql: `dim1Number`,
198-
type: `min`,
199-
},
200-
},
201-
});
202-
"#;
203-
204-
let fm = cm.new_source_file(
205-
Arc::new(FileName::Custom("input.js".into())),
206-
js_code.into(),
207-
);
208-
let lexer = Lexer::new(
209-
Syntax::Es(Default::default()),
210-
EsVersion::Es2020,
211-
StringInput::from(&*fm),
212-
None,
213-
);
214-
let mut parser = Parser::new_from(lexer);
215-
let mut program: Program = parser.parse_program().expect("Failed to parse the JS code");
216-
217-
let mut visitor = CheckDupPropTransformVisitor::new(None, &handler);
218-
program.visit_mut_with(&mut visitor);
219-
220-
let diags = diagnostics.lock().unwrap();
221-
let msgs: Vec<_> = diags
222-
.iter()
223-
.filter(|msg| msg.contains("Duplicate property"))
224-
.collect();
225-
assert!(msgs.len() == 1, "Should emit errors",);
226-
}
227-
228-
#[test]
229-
fn test_errors_for_duplicates_deep_level() {
230-
let cm: Lrc<SourceMap> = Default::default();
231-
let diagnostics = Arc::new(Mutex::new(Vec::new()));
232-
let emitter = Box::new(TestEmitter {
233-
diagnostics: diagnostics.clone(),
234-
});
235-
let handler = Handler::with_emitter_and_flags(
236-
emitter,
237-
HandlerFlags {
238-
can_emit_warnings: true,
239-
..Default::default()
240-
},
241-
);
242-
243-
let js_code = r#"
244-
cube(`cube1`, {
245-
sql: `SELECT * FROM table`,
246-
247-
dimensions: {
248-
id: {
249-
sql: `id`,
250-
type: `number`,
251-
primary_key: true,
252-
},
253-
created_at: {
254-
sql: `created_at`,
255-
type: `time`,
256-
},
257-
dim1Number: {
258-
sql: `dim1Number`,
259-
type: `number`,
260-
},
261-
dim1Number: {
262-
sql: `dim2Number`,
263-
type: `number`,
264-
},
265-
},
266-
267-
dimensions: {
268-
dim2Number: {
269-
sql: `dim2Number`,
270-
type: `number`,
271-
},
272-
},
273-
274-
measures: {
275-
count: {
276-
type: `count`,
277-
sql: `id`,
278-
},
279-
measureDim1: {
280-
sql: `dim1Number`,
281-
type:
282-
`max`,
283-
},
284-
measureDim1: {
285-
sql: `dim1Number`,
286-
type: `min`,
287-
},
288-
},
289-
});
290-
"#;
291-
292-
let fm = cm.new_source_file(
293-
Arc::new(FileName::Custom("input.js".into())),
294-
js_code.into(),
295-
);
296-
let lexer = Lexer::new(
297-
Syntax::Es(Default::default()),
298-
EsVersion::Es2020,
299-
StringInput::from(&*fm),
300-
None,
301-
);
302-
let mut parser = Parser::new_from(lexer);
303-
let mut program: Program = parser.parse_program().expect("Failed to parse the JS code");
304-
305-
let mut visitor = CheckDupPropTransformVisitor::new(None, &handler);
306-
program.visit_mut_with(&mut visitor);
307-
308-
let diags = diagnostics.lock().unwrap();
309-
let msgs: Vec<_> = diags
310-
.iter()
311-
.filter(|msg| msg.contains("Duplicate property"))
312-
.collect();
313-
assert!(msgs.len() == 3, "Should emit errors",);
314-
}
315-
316-
#[test]
317-
fn test_no_errors() {
318-
let cm: Lrc<SourceMap> = Default::default();
319-
let diagnostics = Arc::new(Mutex::new(Vec::new()));
320-
let emitter = Box::new(TestEmitter {
321-
diagnostics: diagnostics.clone(),
322-
});
323-
let handler = Handler::with_emitter_and_flags(
324-
emitter,
325-
HandlerFlags {
326-
can_emit_warnings: true,
327-
..Default::default()
328-
},
329-
);
330-
331-
let js_code = r#"
332-
cube(`cube1`, {
333-
sql: `SELECT * FROM table`,
334-
335-
dimensions: {
336-
id: {
337-
sql: `id`,
338-
type: `number`,
339-
primary_key: true,
340-
},
341-
created_at: {
342-
sql: `created_at`,
343-
type: `time`,
344-
},
345-
dim1Number: {
346-
sql: `dim1Number`,
347-
type: `number`,
348-
},
349-
dim2Number: {
350-
sql: `dim2Number`,
351-
type: `number`,
352-
},
353-
},
354-
355-
measures: {
356-
count: {
357-
type: `count`,
358-
sql: `id`,
359-
},
360-
measureDim1: {
361-
sql: `dim1Number`,
362-
type:
363-
`max`,
364-
},
365-
measureDim2: {
366-
sql: `dim1Number`,
367-
type: `min`,
368-
},
369-
},
370-
});
371-
"#;
372-
373-
let fm = cm.new_source_file(
374-
Arc::new(FileName::Custom("input.js".into())),
375-
js_code.into(),
376-
);
377-
let lexer = Lexer::new(
378-
Syntax::Es(Default::default()),
379-
EsVersion::Es2020,
380-
StringInput::from(&*fm),
381-
None,
382-
);
383-
let mut parser = Parser::new_from(lexer);
384-
let mut program: Program = parser.parse_program().expect("Failed to parse the JS code");
385-
386-
let mut visitor = CheckDupPropTransformVisitor::new(None, &handler);
387-
program.visit_mut_with(&mut visitor);
388-
389-
let diags = diagnostics.lock().unwrap();
390-
assert!(diags.is_empty(), "Should not emit errors",);
391-
}
392-
}

0 commit comments

Comments
 (0)