| // Compiled by ClojureScript 1.10.597 {:target :nodejs} |
| goog.provide('cljs.test'); |
| goog.require('cljs.core'); |
| goog.require('clojure.string'); |
| goog.require('cljs.pprint'); |
| /** |
| * Generates a testing environment with a reporter. |
| * (empty-env) - uses the :cljs.test/default reporter. |
| * (empty-env :cljs.test/pprint) - pretty prints all data structures. |
| * (empty-env reporter) - uses a reporter of your choosing. |
| * |
| * To create your own reporter see cljs.test/report |
| */ |
| cljs.test.empty_env = (function cljs$test$empty_env(var_args){ |
| var G__13472 = arguments.length; |
| switch (G__13472) { |
| case 0: |
| return cljs.test.empty_env.cljs$core$IFn$_invoke$arity$0(); |
| |
| break; |
| case 1: |
| return cljs.test.empty_env.cljs$core$IFn$_invoke$arity$1((arguments[(0)])); |
| |
| break; |
| default: |
| throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(''))); |
| |
| } |
| }); |
| |
| (cljs.test.empty_env.cljs$core$IFn$_invoke$arity$0 = (function (){ |
| return cljs.test.empty_env.call(null,new cljs.core.Keyword("cljs.test","default","cljs.test/default",-1581405322)); |
| })); |
| |
| (cljs.test.empty_env.cljs$core$IFn$_invoke$arity$1 = (function (reporter){ |
| var G__13473 = new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,"report-counters","report-counters",-1702609242),new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,"test","test",577538877),(0),new cljs.core.Keyword(null,"pass","pass",1574159993),(0),new cljs.core.Keyword(null,"fail","fail",1706214930),(0),new cljs.core.Keyword(null,"error","error",-978969032),(0)], null),new cljs.core.Keyword(null,"testing-vars","testing-vars",-2114769150),cljs.core.List.EMPTY,new cljs.core.Keyword(null,"testing-contexts","testing-contexts",-1485646523),cljs.core.List.EMPTY,new cljs.core.Keyword(null,"formatter","formatter",-483008823),cljs.core.pr_str,new cljs.core.Keyword(null,"reporter","reporter",-805360621),reporter], null); |
| if(cljs.core._EQ_.call(null,new cljs.core.Keyword("cljs.test","pprint","cljs.test/pprint",1627393641),reporter)){ |
| return cljs.core.assoc.call(null,G__13473,new cljs.core.Keyword(null,"reporter","reporter",-805360621),new cljs.core.Keyword("cljs.test","default","cljs.test/default",-1581405322),new cljs.core.Keyword(null,"formatter","formatter",-483008823),cljs.pprint.pprint); |
| } else { |
| return G__13473; |
| } |
| })); |
| |
| (cljs.test.empty_env.cljs$lang$maxFixedArity = 1); |
| |
| cljs.test._STAR_current_env_STAR_ = null; |
| cljs.test.get_current_env = (function cljs$test$get_current_env(){ |
| var or__4185__auto__ = cljs.test._STAR_current_env_STAR_; |
| if(cljs.core.truth_(or__4185__auto__)){ |
| return or__4185__auto__; |
| } else { |
| return cljs.test.empty_env.call(null); |
| } |
| }); |
| cljs.test.update_current_env_BANG_ = (function cljs$test$update_current_env_BANG_(var_args){ |
| var args__4795__auto__ = []; |
| var len__4789__auto___13478 = arguments.length; |
| var i__4790__auto___13479 = (0); |
| while(true){ |
| if((i__4790__auto___13479 < len__4789__auto___13478)){ |
| args__4795__auto__.push((arguments[i__4790__auto___13479])); |
| |
| var G__13480 = (i__4790__auto___13479 + (1)); |
| i__4790__auto___13479 = G__13480; |
| continue; |
| } else { |
| } |
| break; |
| } |
| |
| var argseq__4796__auto__ = ((((2) < args__4795__auto__.length))?(new cljs.core.IndexedSeq(args__4795__auto__.slice((2)),(0),null)):null); |
| return cljs.test.update_current_env_BANG_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__4796__auto__); |
| }); |
| |
| (cljs.test.update_current_env_BANG_.cljs$core$IFn$_invoke$arity$variadic = (function (ks,f,args){ |
| return (cljs.test._STAR_current_env_STAR_ = cljs.core.apply.call(null,cljs.core.update_in,cljs.test.get_current_env.call(null),ks,f,args)); |
| })); |
| |
| (cljs.test.update_current_env_BANG_.cljs$lang$maxFixedArity = (2)); |
| |
| /** @this {Function} */ |
| (cljs.test.update_current_env_BANG_.cljs$lang$applyTo = (function (seq13475){ |
| var G__13476 = cljs.core.first.call(null,seq13475); |
| var seq13475__$1 = cljs.core.next.call(null,seq13475); |
| var G__13477 = cljs.core.first.call(null,seq13475__$1); |
| var seq13475__$2 = cljs.core.next.call(null,seq13475__$1); |
| var self__4776__auto__ = this; |
| return self__4776__auto__.cljs$core$IFn$_invoke$arity$variadic(G__13476,G__13477,seq13475__$2); |
| })); |
| |
| cljs.test.set_env_BANG_ = (function cljs$test$set_env_BANG_(new_env){ |
| return (cljs.test._STAR_current_env_STAR_ = new_env); |
| }); |
| cljs.test.clear_env_BANG_ = (function cljs$test$clear_env_BANG_(){ |
| return (cljs.test._STAR_current_env_STAR_ = null); |
| }); |
| cljs.test.get_and_clear_env_BANG_ = (function cljs$test$get_and_clear_env_BANG_(){ |
| |
| var env = cljs.test.get_current_env.call(null); |
| cljs.test.clear_env_BANG_.call(null); |
| |
| return env; |
| }); |
| /** |
| * Returns a string representation of the current test. Renders names |
| * in *testing-vars* as a list, then the source file and line of |
| * current assertion. |
| */ |
| cljs.test.testing_vars_str = (function cljs$test$testing_vars_str(m){ |
| var map__13482 = m; |
| var map__13482__$1 = (((((!((map__13482 == null))))?(((((map__13482.cljs$lang$protocol_mask$partition0$ & (64))) || ((cljs.core.PROTOCOL_SENTINEL === map__13482.cljs$core$ISeq$))))?true:false):false))?cljs.core.apply.call(null,cljs.core.hash_map,map__13482):map__13482); |
| var file = cljs.core.get.call(null,map__13482__$1,new cljs.core.Keyword(null,"file","file",-1269645878)); |
| var line = cljs.core.get.call(null,map__13482__$1,new cljs.core.Keyword(null,"line","line",212345235)); |
| var column = cljs.core.get.call(null,map__13482__$1,new cljs.core.Keyword(null,"column","column",2078222095)); |
| return [cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.reverse.call(null,cljs.core.map.call(null,(function (p1__13481_SHARP_){ |
| return new cljs.core.Keyword(null,"name","name",1843675177).cljs$core$IFn$_invoke$arity$1(cljs.core.meta.call(null,p1__13481_SHARP_)); |
| }),new cljs.core.Keyword(null,"testing-vars","testing-vars",-2114769150).cljs$core$IFn$_invoke$arity$1(cljs.test.get_current_env.call(null)))))," (",cljs.core.str.cljs$core$IFn$_invoke$arity$1(file),":",cljs.core.str.cljs$core$IFn$_invoke$arity$1(line),(cljs.core.truth_(column)?[":",cljs.core.str.cljs$core$IFn$_invoke$arity$1(column)].join(''):null),")"].join(''); |
| }); |
| /** |
| * Returns a string representation of the current test context. Joins |
| * strings in *testing-contexts* with spaces. |
| */ |
| cljs.test.testing_contexts_str = (function cljs$test$testing_contexts_str(){ |
| return cljs.core.apply.call(null,cljs.core.str,cljs.core.interpose.call(null," ",cljs.core.reverse.call(null,new cljs.core.Keyword(null,"testing-contexts","testing-contexts",-1485646523).cljs$core$IFn$_invoke$arity$1(cljs.test.get_current_env.call(null))))); |
| }); |
| /** |
| * Increments the named counter in *report-counters*, a ref to a map. |
| * Does nothing if *report-counters* is nil. |
| */ |
| cljs.test.inc_report_counter_BANG_ = (function cljs$test$inc_report_counter_BANG_(name){ |
| if(cljs.core.truth_(new cljs.core.Keyword(null,"report-counters","report-counters",-1702609242).cljs$core$IFn$_invoke$arity$1(cljs.test.get_current_env.call(null)))){ |
| return cljs.test.update_current_env_BANG_.call(null,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"report-counters","report-counters",-1702609242),name], null),cljs.core.fnil.call(null,cljs.core.inc,(0))); |
| } else { |
| return null; |
| } |
| }); |
| if((typeof cljs !== 'undefined') && (typeof cljs.test !== 'undefined') && (typeof cljs.test.report !== 'undefined')){ |
| } else { |
| /** |
| * Generic reporting function, may be overridden to plug in |
| * different report formats (e.g., TAP, JUnit). Assertions such as |
| * 'is' call 'report' to indicate results. The argument given to |
| * 'report' will be a map with a :type key. |
| */ |
| cljs.test.report = (function (){var method_table__4672__auto__ = cljs.core.atom.call(null,cljs.core.PersistentArrayMap.EMPTY); |
| var prefer_table__4673__auto__ = cljs.core.atom.call(null,cljs.core.PersistentArrayMap.EMPTY); |
| var method_cache__4674__auto__ = cljs.core.atom.call(null,cljs.core.PersistentArrayMap.EMPTY); |
| var cached_hierarchy__4675__auto__ = cljs.core.atom.call(null,cljs.core.PersistentArrayMap.EMPTY); |
| var hierarchy__4676__auto__ = cljs.core.get.call(null,cljs.core.PersistentArrayMap.EMPTY,new cljs.core.Keyword(null,"hierarchy","hierarchy",-1053470341),cljs.core.get_global_hierarchy.call(null)); |
| return (new cljs.core.MultiFn(cljs.core.symbol.call(null,"cljs.test","report"),(function (m){ |
| return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"reporter","reporter",-805360621).cljs$core$IFn$_invoke$arity$1(cljs.test.get_current_env.call(null)),new cljs.core.Keyword(null,"type","type",1174270348).cljs$core$IFn$_invoke$arity$1(m)], null); |
| }),new cljs.core.Keyword(null,"default","default",-1987822328),hierarchy__4676__auto__,method_table__4672__auto__,prefer_table__4673__auto__,method_cache__4674__auto__,cached_hierarchy__4675__auto__)); |
| })(); |
| } |
| cljs.core._add_method.call(null,cljs.test.report,new cljs.core.Keyword(null,"default","default",-1987822328),(function (m){ |
| return null; |
| })); |
| cljs.core._add_method.call(null,cljs.test.report,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword("cljs.test","default","cljs.test/default",-1581405322),new cljs.core.Keyword(null,"pass","pass",1574159993)], null),(function (m){ |
| return cljs.test.inc_report_counter_BANG_.call(null,new cljs.core.Keyword(null,"pass","pass",1574159993)); |
| })); |
| cljs.test.print_comparison = (function cljs$test$print_comparison(m){ |
| var formatter_fn = (function (){var or__4185__auto__ = new cljs.core.Keyword(null,"formatter","formatter",-483008823).cljs$core$IFn$_invoke$arity$1(cljs.test.get_current_env.call(null)); |
| if(cljs.core.truth_(or__4185__auto__)){ |
| return or__4185__auto__; |
| } else { |
| return cljs.core.pr_str; |
| } |
| })(); |
| cljs.core.println.call(null,"expected:",formatter_fn.call(null,new cljs.core.Keyword(null,"expected","expected",1583670997).cljs$core$IFn$_invoke$arity$1(m))); |
| |
| return cljs.core.println.call(null," actual:",formatter_fn.call(null,new cljs.core.Keyword(null,"actual","actual",107306363).cljs$core$IFn$_invoke$arity$1(m))); |
| }); |
| cljs.core._add_method.call(null,cljs.test.report,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword("cljs.test","default","cljs.test/default",-1581405322),new cljs.core.Keyword(null,"fail","fail",1706214930)], null),(function (m){ |
| cljs.test.inc_report_counter_BANG_.call(null,new cljs.core.Keyword(null,"fail","fail",1706214930)); |
| |
| cljs.core.println.call(null,"\nFAIL in",cljs.test.testing_vars_str.call(null,m)); |
| |
| if(cljs.core.seq.call(null,new cljs.core.Keyword(null,"testing-contexts","testing-contexts",-1485646523).cljs$core$IFn$_invoke$arity$1(cljs.test.get_current_env.call(null)))){ |
| cljs.core.println.call(null,cljs.test.testing_contexts_str.call(null)); |
| } else { |
| } |
| |
| var temp__5735__auto___13484 = new cljs.core.Keyword(null,"message","message",-406056002).cljs$core$IFn$_invoke$arity$1(m); |
| if(cljs.core.truth_(temp__5735__auto___13484)){ |
| var message_13485 = temp__5735__auto___13484; |
| cljs.core.println.call(null,message_13485); |
| } else { |
| } |
| |
| return cljs.test.print_comparison.call(null,m); |
| })); |
| cljs.core._add_method.call(null,cljs.test.report,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword("cljs.test","default","cljs.test/default",-1581405322),new cljs.core.Keyword(null,"error","error",-978969032)], null),(function (m){ |
| cljs.test.inc_report_counter_BANG_.call(null,new cljs.core.Keyword(null,"error","error",-978969032)); |
| |
| cljs.core.println.call(null,"\nERROR in",cljs.test.testing_vars_str.call(null,m)); |
| |
| if(cljs.core.seq.call(null,new cljs.core.Keyword(null,"testing-contexts","testing-contexts",-1485646523).cljs$core$IFn$_invoke$arity$1(cljs.test.get_current_env.call(null)))){ |
| cljs.core.println.call(null,cljs.test.testing_contexts_str.call(null)); |
| } else { |
| } |
| |
| var temp__5735__auto___13486 = new cljs.core.Keyword(null,"message","message",-406056002).cljs$core$IFn$_invoke$arity$1(m); |
| if(cljs.core.truth_(temp__5735__auto___13486)){ |
| var message_13487 = temp__5735__auto___13486; |
| cljs.core.println.call(null,message_13487); |
| } else { |
| } |
| |
| return cljs.test.print_comparison.call(null,m); |
| })); |
| cljs.core._add_method.call(null,cljs.test.report,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword("cljs.test","default","cljs.test/default",-1581405322),new cljs.core.Keyword(null,"summary","summary",380847952)], null),(function (m){ |
| cljs.core.println.call(null,"\nRan",new cljs.core.Keyword(null,"test","test",577538877).cljs$core$IFn$_invoke$arity$1(m),"tests containing",((new cljs.core.Keyword(null,"pass","pass",1574159993).cljs$core$IFn$_invoke$arity$1(m) + new cljs.core.Keyword(null,"fail","fail",1706214930).cljs$core$IFn$_invoke$arity$1(m)) + new cljs.core.Keyword(null,"error","error",-978969032).cljs$core$IFn$_invoke$arity$1(m)),"assertions."); |
| |
| return cljs.core.println.call(null,new cljs.core.Keyword(null,"fail","fail",1706214930).cljs$core$IFn$_invoke$arity$1(m),"failures,",new cljs.core.Keyword(null,"error","error",-978969032).cljs$core$IFn$_invoke$arity$1(m),"errors."); |
| })); |
| cljs.core._add_method.call(null,cljs.test.report,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword("cljs.test","default","cljs.test/default",-1581405322),new cljs.core.Keyword(null,"begin-test-ns","begin-test-ns",-1701237033)], null),(function (m){ |
| return cljs.core.println.call(null,"\nTesting",cljs.core.name.call(null,new cljs.core.Keyword(null,"ns","ns",441598760).cljs$core$IFn$_invoke$arity$1(m))); |
| })); |
| cljs.core._add_method.call(null,cljs.test.report,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword("cljs.test","default","cljs.test/default",-1581405322),new cljs.core.Keyword(null,"end-test-ns","end-test-ns",1620675645)], null),(function (m){ |
| return null; |
| })); |
| cljs.core._add_method.call(null,cljs.test.report,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword("cljs.test","default","cljs.test/default",-1581405322),new cljs.core.Keyword(null,"begin-test-var","begin-test-var",-908571100)], null),(function (m){ |
| return null; |
| })); |
| cljs.core._add_method.call(null,cljs.test.report,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword("cljs.test","default","cljs.test/default",-1581405322),new cljs.core.Keyword(null,"end-test-var","end-test-var",984198545)], null),(function (m){ |
| return null; |
| })); |
| cljs.core._add_method.call(null,cljs.test.report,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword("cljs.test","default","cljs.test/default",-1581405322),new cljs.core.Keyword(null,"end-run-tests","end-run-tests",267300563)], null),(function (m){ |
| return null; |
| })); |
| cljs.core._add_method.call(null,cljs.test.report,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword("cljs.test","default","cljs.test/default",-1581405322),new cljs.core.Keyword(null,"end-test-all-vars","end-test-all-vars",548827253)], null),(function (m){ |
| return null; |
| })); |
| cljs.core._add_method.call(null,cljs.test.report,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword("cljs.test","default","cljs.test/default",-1581405322),new cljs.core.Keyword(null,"end-test-vars","end-test-vars",-1394419713)], null),(function (m){ |
| return null; |
| })); |
| cljs.test.js_line_and_column = (function cljs$test$js_line_and_column(stack_element){ |
| |
| var parts = stack_element.split(":"); |
| var cnt = cljs.core.count.call(null,parts); |
| if((cnt > (1))){ |
| return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [parseInt(cljs.core.nth.call(null,parts,(cnt - (2))),(10)),parseInt(cljs.core.nth.call(null,parts,(cnt - (1))),(10))], null); |
| } else { |
| return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [NaN,NaN], null); |
| } |
| }); |
| cljs.test.js_filename = (function cljs$test$js_filename(stack_element){ |
| var output_dir = ".cljs_node_repl"; |
| var output_dir__$1 = (function (){var G__13488 = output_dir; |
| if((!(clojure.string.ends_with_QMARK_.call(null,output_dir,"/")))){ |
| return [G__13488,"/"].join(''); |
| } else { |
| return G__13488; |
| } |
| })(); |
| return cljs.core.first.call(null,cljs.core.last.call(null,stack_element.split(output_dir__$1)).split(":")); |
| }); |
| cljs.test.mapped_line_and_column = (function cljs$test$mapped_line_and_column(filename,line,column){ |
| var default$ = new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [filename,line,column], null); |
| var temp__5733__auto__ = new cljs.core.Keyword(null,"source-map","source-map",1706252311).cljs$core$IFn$_invoke$arity$1(cljs.test.get_current_env.call(null)); |
| if(cljs.core.truth_(temp__5733__auto__)){ |
| var source_map = temp__5733__auto__; |
| var temp__5733__auto____$1 = cljs.core.get_in.call(null,source_map,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [filename,(line - (1))], null)); |
| if(cljs.core.truth_(temp__5733__auto____$1)){ |
| var columns = temp__5733__auto____$1; |
| return cljs.core.vec.call(null,cljs.core.map.call(null,cljs.core.first.call(null,(function (){var temp__5733__auto____$2 = cljs.core.get.call(null,columns,(column - (1))); |
| if(cljs.core.truth_(temp__5733__auto____$2)){ |
| var mapping = temp__5733__auto____$2; |
| return mapping; |
| } else { |
| return cljs.core.second.call(null,cljs.core.first.call(null,columns)); |
| } |
| })()),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"source","source",-433931539),new cljs.core.Keyword(null,"line","line",212345235),new cljs.core.Keyword(null,"col","col",-1959363084)], null))); |
| } else { |
| return default$; |
| } |
| } else { |
| return default$; |
| } |
| }); |
| cljs.test.file_and_line = (function cljs$test$file_and_line(exception,depth){ |
| var temp__5733__auto__ = ((typeof exception.stack === 'string')?(function (){var G__13490 = exception.stack; |
| var G__13490__$1 = (((G__13490 == null))?null:clojure.string.split_lines.call(null,G__13490)); |
| var G__13490__$2 = (((G__13490__$1 == null))?null:cljs.core.get.call(null,G__13490__$1,depth)); |
| if((G__13490__$2 == null)){ |
| return null; |
| } else { |
| return clojure.string.trim.call(null,G__13490__$2); |
| } |
| })():false); |
| if(cljs.core.truth_(temp__5733__auto__)){ |
| var stack_element = temp__5733__auto__; |
| var fname = cljs.test.js_filename.call(null,stack_element); |
| var vec__13491 = cljs.test.js_line_and_column.call(null,stack_element); |
| var line = cljs.core.nth.call(null,vec__13491,(0),null); |
| var column = cljs.core.nth.call(null,vec__13491,(1),null); |
| var vec__13494 = cljs.test.mapped_line_and_column.call(null,fname,line,column); |
| var fname__$1 = cljs.core.nth.call(null,vec__13494,(0),null); |
| var line__$1 = cljs.core.nth.call(null,vec__13494,(1),null); |
| var column__$1 = cljs.core.nth.call(null,vec__13494,(2),null); |
| return new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"file","file",-1269645878),fname__$1,new cljs.core.Keyword(null,"line","line",212345235),line__$1,new cljs.core.Keyword(null,"column","column",2078222095),column__$1], null); |
| } else { |
| return new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"file","file",-1269645878),exception.fileName,new cljs.core.Keyword(null,"line","line",212345235),exception.lineNumber], null); |
| } |
| }); |
| cljs.test.do_report = (function cljs$test$do_report(m){ |
| var m__$1 = (function (){var G__13497 = new cljs.core.Keyword(null,"type","type",1174270348).cljs$core$IFn$_invoke$arity$1(m); |
| var G__13497__$1 = (((G__13497 instanceof cljs.core.Keyword))?G__13497.fqn:null); |
| switch (G__13497__$1) { |
| case "fail": |
| return cljs.core.merge.call(null,cljs.test.file_and_line.call(null,(new Error()),(4)),m); |
| |
| break; |
| case "error": |
| return cljs.core.merge.call(null,cljs.test.file_and_line.call(null,new cljs.core.Keyword(null,"actual","actual",107306363).cljs$core$IFn$_invoke$arity$1(m),(0)),m); |
| |
| break; |
| default: |
| return m; |
| |
| } |
| })(); |
| return cljs.test.report.call(null,m__$1); |
| }); |
| |
| /** |
| * Marker protocol denoting CPS function to begin asynchronous |
| * testing. |
| * @interface |
| */ |
| cljs.test.IAsyncTest = function(){}; |
| |
| /** |
| * Returns whether x implements IAsyncTest. |
| */ |
| cljs.test.async_QMARK_ = (function cljs$test$async_QMARK_(x){ |
| if((!((x == null)))){ |
| if(((false) || ((cljs.core.PROTOCOL_SENTINEL === x.cljs$test$IAsyncTest$)))){ |
| return true; |
| } else { |
| if((!x.cljs$lang$protocol_mask$partition$)){ |
| return cljs.core.native_satisfies_QMARK_.call(null,cljs.test.IAsyncTest,x); |
| } else { |
| return false; |
| } |
| } |
| } else { |
| return cljs.core.native_satisfies_QMARK_.call(null,cljs.test.IAsyncTest,x); |
| } |
| }); |
| /** |
| * Invoke all functions in fns with no arguments. A fn can optionally |
| * return |
| * |
| * an async test - is invoked with a continuation running left fns |
| * |
| * a seq of fns tagged per block - are invoked immediately after fn |
| */ |
| cljs.test.run_block = (function cljs$test$run_block(fns){ |
| while(true){ |
| var temp__5735__auto__ = cljs.core.seq.call(null,fns); |
| if(temp__5735__auto__){ |
| var xs__6292__auto__ = temp__5735__auto__; |
| var f = cljs.core.first.call(null,xs__6292__auto__); |
| var obj = f.call(null); |
| if(cljs.test.async_QMARK_.call(null,obj)){ |
| return obj.call(null,(function (){var d = (new cljs.core.Delay(((function (fns,obj,f,xs__6292__auto__,temp__5735__auto__){ |
| return (function (){ |
| return cljs.test.run_block.call(null,cljs.core.rest.call(null,fns)); |
| });})(fns,obj,f,xs__6292__auto__,temp__5735__auto__)) |
| ,null)); |
| return ((function (fns,d,obj,f,xs__6292__auto__,temp__5735__auto__){ |
| return (function (){ |
| if(cljs.core.realized_QMARK_.call(null,d)){ |
| return cljs.core.println.call(null,"WARNING: Async test called done more than one time."); |
| } else { |
| return cljs.core.deref.call(null,d); |
| } |
| }); |
| ;})(fns,d,obj,f,xs__6292__auto__,temp__5735__auto__)) |
| })()); |
| } else { |
| var G__13501 = (function (){var G__13500 = cljs.core.rest.call(null,fns); |
| if(cljs.core.truth_(new cljs.core.Keyword("cljs.test","block?","cljs.test/block?",686379965).cljs$core$IFn$_invoke$arity$1(cljs.core.meta.call(null,obj)))){ |
| return cljs.core.concat.call(null,obj,G__13500); |
| } else { |
| return G__13500; |
| } |
| })(); |
| fns = G__13501; |
| continue; |
| } |
| } else { |
| return null; |
| } |
| break; |
| } |
| }); |
| /** |
| * Tag a seq of fns to be picked up by run-block as injected |
| * continuation. See run-block. |
| */ |
| cljs.test.block = (function cljs$test$block(fns){ |
| var G__13502 = fns; |
| if((G__13502 == null)){ |
| return null; |
| } else { |
| return cljs.core.vary_meta.call(null,G__13502,cljs.core.assoc,new cljs.core.Keyword("cljs.test","block?","cljs.test/block?",686379965),true); |
| } |
| }); |
| cljs.test.test_var_block_STAR_ = (function cljs$test$test_var_block_STAR_(v,t){ |
| if((v instanceof cljs.core.Var)){ |
| } else { |
| throw (new Error("Assert failed: (instance? Var v)")); |
| } |
| |
| return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(function (){ |
| cljs.test.update_current_env_BANG_.call(null,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"testing-vars","testing-vars",-2114769150)], null),cljs.core.conj,v); |
| |
| cljs.test.update_current_env_BANG_.call(null,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"report-counters","report-counters",-1702609242),new cljs.core.Keyword(null,"test","test",577538877)], null),cljs.core.inc); |
| |
| cljs.test.do_report.call(null,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"type","type",1174270348),new cljs.core.Keyword(null,"begin-test-var","begin-test-var",-908571100),new cljs.core.Keyword(null,"var","var",-769682797),v], null)); |
| |
| try{return t.call(null); |
| }catch (e13503){var e = e13503; |
| var G__13504 = e; |
| var G__13504__$1 = (((G__13504 instanceof cljs.core.Keyword))?G__13504.fqn:null); |
| switch (G__13504__$1) { |
| case "cljs.test/async-disabled": |
| throw "Async tests require fixtures to be specified as maps. Testing aborted."; |
| |
| break; |
| default: |
| return cljs.test.do_report.call(null,new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,"type","type",1174270348),new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword(null,"message","message",-406056002),"Uncaught exception, not in assertion.",new cljs.core.Keyword(null,"expected","expected",1583670997),null,new cljs.core.Keyword(null,"actual","actual",107306363),e], null)); |
| |
| } |
| }}),(function (){ |
| cljs.test.do_report.call(null,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"type","type",1174270348),new cljs.core.Keyword(null,"end-test-var","end-test-var",984198545),new cljs.core.Keyword(null,"var","var",-769682797),v], null)); |
| |
| return cljs.test.update_current_env_BANG_.call(null,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"testing-vars","testing-vars",-2114769150)], null),cljs.core.rest); |
| })], null); |
| }); |
| /** |
| * Like test-var, but returns a block for further composition and |
| * later execution. |
| */ |
| cljs.test.test_var_block = (function cljs$test$test_var_block(v){ |
| var temp__5733__auto__ = new cljs.core.Keyword(null,"test","test",577538877).cljs$core$IFn$_invoke$arity$1(cljs.core.meta.call(null,v)); |
| if(cljs.core.truth_(temp__5733__auto__)){ |
| var t = temp__5733__auto__; |
| return cljs.test.test_var_block_STAR_.call(null,v,t); |
| } else { |
| return null; |
| } |
| }); |
| /** |
| * If v has a function in its :test metadata, calls that function, |
| * add v to :testing-vars property of env. |
| */ |
| cljs.test.test_var = (function cljs$test$test_var(v){ |
| return cljs.test.run_block.call(null,cljs.test.test_var_block.call(null,v)); |
| }); |
| /** |
| * The default, empty, fixture function. Just calls its argument. |
| * |
| * NOTE: Incompatible with map fixtures. |
| */ |
| cljs.test.default_fixture = (function cljs$test$default_fixture(f){ |
| return f.call(null); |
| }); |
| /** |
| * Composes two fixture functions, creating a new fixture function |
| * that combines their behavior. |
| * |
| * NOTE: Incompatible with map fixtures. |
| */ |
| cljs.test.compose_fixtures = (function cljs$test$compose_fixtures(f1,f2){ |
| return (function (g){ |
| return f1.call(null,(function (){ |
| return f2.call(null,g); |
| })); |
| }); |
| }); |
| /** |
| * Composes a collection of fixtures, in order. Always returns a valid |
| * fixture function, even if the collection is empty. |
| * |
| * NOTE: Incompatible with map fixtures. |
| */ |
| cljs.test.join_fixtures = (function cljs$test$join_fixtures(fixtures){ |
| return cljs.core.reduce.call(null,cljs.test.compose_fixtures,cljs.test.default_fixture,fixtures); |
| }); |
| /** |
| * Wraps block in map-fixtures. |
| */ |
| cljs.test.wrap_map_fixtures = (function cljs$test$wrap_map_fixtures(map_fixtures,block){ |
| return cljs.core.concat.call(null,cljs.core.keep.call(null,new cljs.core.Keyword(null,"before","before",-1633692388),map_fixtures),block,cljs.core.reverse.call(null,cljs.core.keep.call(null,new cljs.core.Keyword(null,"after","after",594996914),map_fixtures))); |
| }); |
| cljs.test.execution_strategy = (function cljs$test$execution_strategy(once,each){ |
| var fixtures_type = (function cljs$test$execution_strategy_$_fixtures_type(coll){ |
| if(cljs.core.empty_QMARK_.call(null,coll)){ |
| return new cljs.core.Keyword(null,"none","none",1333468478); |
| } else { |
| if(cljs.core.every_QMARK_.call(null,cljs.core.map_QMARK_,coll)){ |
| return new cljs.core.Keyword(null,"map","map",1371690461); |
| } else { |
| if(cljs.core.every_QMARK_.call(null,cljs.core.fn_QMARK_,coll)){ |
| return new cljs.core.Keyword(null,"fn","fn",-1175266204); |
| } else { |
| return null; |
| } |
| } |
| } |
| }); |
| var fixtures_types = (function cljs$test$execution_strategy_$_fixtures_types(){ |
| return cljs.core.distinct.call(null,cljs.core.remove.call(null,new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"none","none",1333468478),null], null), null),cljs.core.map.call(null,fixtures_type,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [once,each], null)))); |
| }); |
| var vec__13506 = fixtures_types.call(null); |
| var type = cljs.core.nth.call(null,vec__13506,(0),null); |
| var types = vec__13506; |
| if(cljs.core.not_any_QMARK_.call(null,cljs.core.nil_QMARK_,types)){ |
| } else { |
| throw (new Error(["Assert failed: ","Fixtures may not be of mixed types","\n","(not-any? nil? types)"].join(''))); |
| } |
| |
| if(((2) > cljs.core.count.call(null,types))){ |
| } else { |
| throw (new Error(["Assert failed: ","fixtures specified in :once and :each must be of the same type","\n","(> 2 (count types))"].join(''))); |
| } |
| |
| return new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"map","map",1371690461),new cljs.core.Keyword(null,"async","async",1050769601),new cljs.core.Keyword(null,"fn","fn",-1175266204),new cljs.core.Keyword(null,"sync","sync",-624148946)], null).call(null,type,new cljs.core.Keyword(null,"async","async",1050769601)); |
| }); |
| cljs.test.disable_async = (function cljs$test$disable_async(f){ |
| return (function (){ |
| var obj = f.call(null); |
| if(cljs.test.async_QMARK_.call(null,obj)){ |
| throw new cljs.core.Keyword("cljs.test","async-disabled","cljs.test/async-disabled",-772095377); |
| } else { |
| } |
| |
| return obj; |
| }); |
| }); |
| /** |
| * Like test-vars, but returns a block for further composition and |
| * later execution. |
| */ |
| cljs.test.test_vars_block = (function cljs$test$test_vars_block(vars){ |
| return cljs.core.map.call(null,(function (p__13509){ |
| var vec__13510 = p__13509; |
| var ns = cljs.core.nth.call(null,vec__13510,(0),null); |
| var vars__$1 = cljs.core.nth.call(null,vec__13510,(1),null); |
| return (function (){ |
| return cljs.test.block.call(null,(function (){var env = cljs.test.get_current_env.call(null); |
| var once_fixtures = cljs.core.get_in.call(null,env,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"once-fixtures","once-fixtures",1253947167),ns], null)); |
| var each_fixtures = cljs.core.get_in.call(null,env,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"each-fixtures","each-fixtures",802243977),ns], null)); |
| var G__13513 = cljs.test.execution_strategy.call(null,once_fixtures,each_fixtures); |
| var G__13513__$1 = (((G__13513 instanceof cljs.core.Keyword))?G__13513.fqn:null); |
| switch (G__13513__$1) { |
| case "async": |
| return cljs.test.wrap_map_fixtures.call(null,once_fixtures,cljs.core.mapcat.call(null,cljs.core.comp.call(null,cljs.core.partial.call(null,cljs.test.wrap_map_fixtures,each_fixtures),cljs.test.test_var_block),cljs.core.filter.call(null,cljs.core.comp.call(null,new cljs.core.Keyword(null,"test","test",577538877),cljs.core.meta),vars__$1))); |
| |
| break; |
| case "sync": |
| var each_fixture_fn = cljs.test.join_fixtures.call(null,each_fixtures); |
| return new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(function (){ |
| return cljs.test.join_fixtures.call(null,once_fixtures).call(null,(function (){ |
| var seq__13514 = cljs.core.seq.call(null,vars__$1); |
| var chunk__13515 = null; |
| var count__13516 = (0); |
| var i__13517 = (0); |
| while(true){ |
| if((i__13517 < count__13516)){ |
| var v = cljs.core._nth.call(null,chunk__13515,i__13517); |
| var temp__5735__auto___13519 = new cljs.core.Keyword(null,"test","test",577538877).cljs$core$IFn$_invoke$arity$1(cljs.core.meta.call(null,v)); |
| if(cljs.core.truth_(temp__5735__auto___13519)){ |
| var t_13520 = temp__5735__auto___13519; |
| each_fixture_fn.call(null,((function (seq__13514,chunk__13515,count__13516,i__13517,t_13520,temp__5735__auto___13519,v,each_fixture_fn,G__13513,G__13513__$1,env,once_fixtures,each_fixtures,vec__13510,ns,vars__$1){ |
| return (function (){ |
| return cljs.test.run_block.call(null,cljs.test.test_var_block_STAR_.call(null,v,cljs.test.disable_async.call(null,t_13520))); |
| });})(seq__13514,chunk__13515,count__13516,i__13517,t_13520,temp__5735__auto___13519,v,each_fixture_fn,G__13513,G__13513__$1,env,once_fixtures,each_fixtures,vec__13510,ns,vars__$1)) |
| ); |
| } else { |
| } |
| |
| |
| var G__13521 = seq__13514; |
| var G__13522 = chunk__13515; |
| var G__13523 = count__13516; |
| var G__13524 = (i__13517 + (1)); |
| seq__13514 = G__13521; |
| chunk__13515 = G__13522; |
| count__13516 = G__13523; |
| i__13517 = G__13524; |
| continue; |
| } else { |
| var temp__5735__auto__ = cljs.core.seq.call(null,seq__13514); |
| if(temp__5735__auto__){ |
| var seq__13514__$1 = temp__5735__auto__; |
| if(cljs.core.chunked_seq_QMARK_.call(null,seq__13514__$1)){ |
| var c__4609__auto__ = cljs.core.chunk_first.call(null,seq__13514__$1); |
| var G__13525 = cljs.core.chunk_rest.call(null,seq__13514__$1); |
| var G__13526 = c__4609__auto__; |
| var G__13527 = cljs.core.count.call(null,c__4609__auto__); |
| var G__13528 = (0); |
| seq__13514 = G__13525; |
| chunk__13515 = G__13526; |
| count__13516 = G__13527; |
| i__13517 = G__13528; |
| continue; |
| } else { |
| var v = cljs.core.first.call(null,seq__13514__$1); |
| var temp__5735__auto___13529__$1 = new cljs.core.Keyword(null,"test","test",577538877).cljs$core$IFn$_invoke$arity$1(cljs.core.meta.call(null,v)); |
| if(cljs.core.truth_(temp__5735__auto___13529__$1)){ |
| var t_13530 = temp__5735__auto___13529__$1; |
| each_fixture_fn.call(null,((function (seq__13514,chunk__13515,count__13516,i__13517,t_13530,temp__5735__auto___13529__$1,v,seq__13514__$1,temp__5735__auto__,each_fixture_fn,G__13513,G__13513__$1,env,once_fixtures,each_fixtures,vec__13510,ns,vars__$1){ |
| return (function (){ |
| return cljs.test.run_block.call(null,cljs.test.test_var_block_STAR_.call(null,v,cljs.test.disable_async.call(null,t_13530))); |
| });})(seq__13514,chunk__13515,count__13516,i__13517,t_13530,temp__5735__auto___13529__$1,v,seq__13514__$1,temp__5735__auto__,each_fixture_fn,G__13513,G__13513__$1,env,once_fixtures,each_fixtures,vec__13510,ns,vars__$1)) |
| ); |
| } else { |
| } |
| |
| |
| var G__13531 = cljs.core.next.call(null,seq__13514__$1); |
| var G__13532 = null; |
| var G__13533 = (0); |
| var G__13534 = (0); |
| seq__13514 = G__13531; |
| chunk__13515 = G__13532; |
| count__13516 = G__13533; |
| i__13517 = G__13534; |
| continue; |
| } |
| } else { |
| return null; |
| } |
| } |
| break; |
| } |
| })); |
| })], null); |
| |
| break; |
| default: |
| throw (new Error(["No matching clause: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(G__13513__$1)].join(''))); |
| |
| } |
| })()); |
| }); |
| }),cljs.core.group_by.call(null,cljs.core.comp.call(null,new cljs.core.Keyword(null,"ns","ns",441598760),cljs.core.meta),vars)); |
| }); |
| /** |
| * Groups vars by their namespace and runs test-vars on them with |
| * appropriate fixtures assuming they are present in the current |
| * testing environment. |
| */ |
| cljs.test.test_vars = (function cljs$test$test_vars(vars){ |
| return cljs.test.run_block.call(null,cljs.core.concat.call(null,cljs.test.test_vars_block.call(null,vars),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [(function (){ |
| return cljs.test.report.call(null,new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"type","type",1174270348),new cljs.core.Keyword(null,"end-test-vars","end-test-vars",-1394419713),new cljs.core.Keyword(null,"vars","vars",-2046957217),vars], null)); |
| })], null))); |
| }); |
| /** |
| * Returns true if the given test summary indicates all tests |
| * were successful, false otherwise. |
| */ |
| cljs.test.successful_QMARK_ = (function cljs$test$successful_QMARK_(summary){ |
| return (((new cljs.core.Keyword(null,"fail","fail",1706214930).cljs$core$IFn$_invoke$arity$2(summary,(0)) === (0))) && ((new cljs.core.Keyword(null,"error","error",-978969032).cljs$core$IFn$_invoke$arity$2(summary,(0)) === (0)))); |
| }); |
| |
| //# sourceMappingURL=test.js.map |