UNPKG

spectacular

Version:

Advanced BDD framework for CoffeeScript and JavaScript

106 lines (80 loc) 2.88 kB
spectacular.paths = spectacular.paths or [] spectacular.options = spectacular.options or {} defaults = coffee: false verbose: false profile: false trace: true longTrace: false showSource: true format: 'progress' matchersRoot: './specs/support/matchers' helpersRoot: './specs/support/helpers' fixturesRoot: './specs/support/fixtures' noMatchers: false noHelpers: false colors: true random: true seed: null server: false globs: [] spectacular.options[k] = v for k,v of defaults when not k of spectacular.options a = document.createElement 'a' a.href = window.location if a.search && a.search.length > 1 params = new spectacular.URLParameters(decodeURI a.search[1..]) spectacular.options[k] = v for k,v of params when params.hasOwnProperty k spectacular.BrowserMethods(spectacular.options) spectacular.env = new spectacular.Environment(spectacular.options) spectacular.env.globalize() spectacular.env.runner.loadStartedAt = new Date() viewerSize = -> Math.min(document.body.clientWidth - 60, 500) window.env = spectacular.env displayErrors = (msg, file, line) -> formatter = new spectacular.formatters.console.ErrorSourceFormatter spectacular.options, file, line formatter.format().then (src) -> node = document.createElement 'div' node.innerHTML = spectacular.templates.error(message: msg, source: src) document.body.appendChild node hasErrors = false errors = [] window.onerror = (e) -> hasErrors = true displayErrors.apply null, arguments true currentWindowOnload = window.onload window.onload = -> do currentWindowOnload if currentWindowOnload? return if hasErrors utils = spectacular.utils if spectacular.options.verbose console.log utils.indent utils.inspect spectacular.options console.log utils.indent utils.inspect spectacular.paths console.log '\n Scripts loaded:' scripts = document.querySelectorAll('script[src]') for s in scripts console.log " #{s.attributes.getNamedItem("src")?.value}" console.log '' reporter = new spectacular.BrowserReporter( spectacular.env.runner, [ new spectacular.widgets.RunnerProgress new spectacular.widgets.ExamplesList new spectacular.widgets.ExampleViewer new spectacular.widgets.ExamplesSearch ] ) if spectacular.options.filter {filter} = spectacular.options n = document.createElement 'div' if spectacular.options.verbose console.log "Example Filter: '#{filter}'" spectacular.env.rootExampleGroup.allExamples.forEach (example) -> n.innerHTML = example.description desc = n.textContent example.exclusive = true if desc.indexOf(filter) isnt -1 reporter.init() spectacular.env.runner.loadEndedAt = new Date() spectacular.env.runner.specsStartedAt = new Date() spectacular.env.run().fail (reason) -> console.log reason.stack