Make a WS class to eliminate globals

This commit is contained in:
Arlo Breault 2019-05-01 10:11:15 -04:00
parent f3254e3402
commit bd5887a876
5 changed files with 90 additions and 85 deletions

View file

@ -0,0 +1,38 @@
###
jasmine tests for Snowflake websocket
###
describe 'BuildUrl', ->
it 'should parse just protocol and host', ->
expect(WS.buildUrl('http', 'example.com')).toBe 'http://example.com'
it 'should handle different ports', ->
expect WS.buildUrl 'http', 'example.com', 80
.toBe 'http://example.com'
expect WS.buildUrl 'http', 'example.com', 81
.toBe 'http://example.com:81'
expect WS.buildUrl 'http', 'example.com', 443
.toBe 'http://example.com:443'
expect WS.buildUrl 'http', 'example.com', 444
.toBe 'http://example.com:444'
it 'should handle paths', ->
expect WS.buildUrl 'http', 'example.com', 80, '/'
.toBe 'http://example.com/'
expect WS.buildUrl 'http', 'example.com', 80,'/test?k=%#v'
.toBe 'http://example.com/test%3Fk%3D%25%23v'
expect WS.buildUrl 'http', 'example.com', 80, '/test'
.toBe 'http://example.com/test'
it 'should handle params', ->
expect WS.buildUrl 'http', 'example.com', 80, '/test', [['k', '%#v']]
.toBe 'http://example.com/test?k=%25%23v'
expect WS.buildUrl 'http', 'example.com', 80, '/test', [['a', 'b'], ['c', 'd']]
.toBe 'http://example.com/test?a=b&c=d'
it 'should handle ips', ->
expect WS.buildUrl 'http', '1.2.3.4'
.toBe 'http://1.2.3.4'
expect WS.buildUrl 'http', '1:2::3:4'
.toBe 'http://[1:2::3:4]'
it 'should handle bogus', ->
expect WS.buildUrl 'http', 'bog][us'
.toBe 'http://bog%5D%5Bus'
expect WS.buildUrl 'http', 'bog:u]s'
.toBe 'http://bog%3Au%5Ds'