/
cljParser.test.ts
31 lines (30 loc) · 1.08 KB
/
cljParser.test.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import * as assert from 'assert';
import {cljParser} from '../src/cljParser';
suite('cljParser', () => {
let cases = [
['user', ''],
['foo', '(ns foo)'],
['foo', '\n(ns foo)'],
['foo', '\t(ns foo)'],
['foo', '\t(ns\tfoo)'],
['foo-bar', '(ns foo-bar)'],
['bar', '(ns bar)'],
['baz', '(ns baz "docstring")'],
['qux', `(ns qux
"docstring")`],
['foo.bar', '(ns foo.bar)'],
['foo.bar-baz', '(ns foo.bar-baz)'],
['foo.bar', `(ns foo.bar
(:refer-clojure :exclude [ancestors printf])
(:require (clojure.contrib sql combinatorics))
(:use (my.lib this that))
(:import (java.util Date Timer Random)
(java.sql Connection Statement)))`],
['bar', '(in-ns \'bar)'],
];
for (let [want, input] of cases) {
test(`getNamespace("${input}") should be "${want}"`, () => {
assert.equal(cljParser.getNamespace(input), want);
});
}
});