jam-cloud/web/spec/javascripts/site_validator_spec.js.coffee

60 lines
2.1 KiB
CoffeeScript

describe "SiteValidator", ->
$('<link/>',
rel: 'stylesheet'
type: 'text/css'
href: '/assets/client/site_validator.css').appendTo 'head'
fixture.preload("siteValidator.html")
beforeEach ->
@server = sinon.fakeServer.create();
window.jamClient = sinon.stub()
@fixtures = fixture.load("siteValidator.html", true)
window.gon = {}
window.gon.isNativeClient = true
afterEach ->
@server.restore()
describe "url site types", ->
it "displays validator widget", ->
site_validator = new JK.SiteValidator('url')
site_validator.init()
site_validator.data_input.val('http://www.jamkazam.com')
site_validator.siteIsValid()
expect(site_validator.checkmark).toBeVisible()
it "displays error for bad url", ->
site_validator = new JK.SiteValidator('url')
site_validator.init()
site_validator.data_input.val('www.jamkazam.com')
site_validator.did_blur()
expect(site_validator.checkmark).toBeHidden()
it "validates a good url", ->
url = 'http://www.jamkazam.com'
@server.respondWith("GET", '/api/data_validation?sitetype=url&data=' + encodeURIComponent(url),
[200, { "content-type": "application/json" }, JSON.stringify({"message": "Valid Site"})])
sinon.spy()
site_validator = new JK.SiteValidator('url')
site_validator.init()
site_validator.data_input.val(url)
site_validator.did_blur()
@server.respond()
expect(site_validator.checkmark).toBeVisible()
it "invalidates a good url", ->
url = 'http://www.jamkazam.comxx'
@server.respondWith("GET", '/api/data_validation?sitetype=url&data=' + encodeURIComponent(url),
[200, { "content-type": "application/json" }, JSON.stringify({"message": "Invalid Site"})])
sinon.spy()
site_validator = new JK.SiteValidator('url')
site_validator.init()
site_validator.data_input.val(url)
site_validator.did_blur()
@server.respond()
expect(site_validator.checkmark).toBeHidden()
expect(site_validator.site_status).toEqual(false)