Skip to content

Commit

Permalink
Test param merging
Browse files Browse the repository at this point in the history
  • Loading branch information
kevinresol committed May 13, 2019
1 parent da09b44 commit 4c5823e
Show file tree
Hide file tree
Showing 4 changed files with 26 additions and 5 deletions.
2 changes: 1 addition & 1 deletion src/tink/web/routing/Context.hx
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ class Context {
}

public function headers():Pairs<tink.http.Header.HeaderValue> {
return [for (f in header) new Named(toCamelCase(f.name), f.value)];
return [for (f in header) new Named(f.name, f.value)];
}

static function toCamelCase(header:HeaderName) {//TODO: should go some place else
Expand Down
4 changes: 3 additions & 1 deletion tests/DispatchTest.hx
Original file line number Diff line number Diff line change
Expand Up @@ -62,8 +62,10 @@ class DispatchTest {
@:variant('<p>Hello world</p>', get('/', []))
@:variant({ hello: 'haxe' }, get('/haxe'))
@:variant("yo", get('/yo'))
@:variant({ foo: 'f', baz: 'b', raw: 'foo=f&baz=b'},
@:variant({ foo: 'f', baz: 'b', query: 'foo=f&baz=b'},
get('/alias?foo=f&baz=b'))
@:variant({ foo: 'foo', bar: 'bar', baz: 'baz'},
req('/merged?foo=foo', GET, [new HeaderField('x-bar', 'bar')], '{"baz":"baz"}'))
@:variant({ foo: 'hey', bar: 4 }, req('/post', POST, [new tink.http.Header.HeaderField('content-type', 'application/x-www-form-urlencoded')], 'bar=4&foo=hey'))
@:variant({ foo: 'hey', bar: 4 }, req('/post', POST, [new tink.http.Header.HeaderField('content-type', 'application/json')], haxe.Json.stringify({ foo: 'hey', bar: 4 })))
@:variant({header: 'application/json'}, get('/headers', [new tink.http.Header.HeaderField('accept', 'application/json')]))
Expand Down
11 changes: 9 additions & 2 deletions tests/Fake.hx
Original file line number Diff line number Diff line change
Expand Up @@ -94,14 +94,21 @@ class Fake {

@:params(notfoo = query['foo'])
@:params(bar.baz = query['baz'])
@:get public function alias(notfoo:String, bar:{baz:String}, ctx:Context):{foo:String, baz:String, raw:String} {
@:get public function alias(notfoo:String, bar:{baz:String}, ctx:Context):{foo:String, baz:String, query:String} {
return {
foo: notfoo,
baz: bar.baz,
raw: @:privateAccess ctx.request.header.url.query,
query: @:privateAccess ctx.request.header.url.query,
}
}

@:params(obj.foo = query['foo'])
@:params(obj.bar = header['x-bar'])
@:params(obj.baz = body['baz'])
@:get public function merged(obj:{foo:String, bar:String,baz:String}):{foo:String, bar:String, baz:String} {
return obj;
}

@:get('enum_abs_str/$v') public function enumAbstractStringInPath(v:EStr):EStr
return v;

Expand Down
14 changes: 13 additions & 1 deletion tests/ProxyTest.hx
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,19 @@ class ProxyTest {
.next(function (o) {
asserts.assert(o.foo == 'f');
asserts.assert(o.baz == 'b');
asserts.assert(o.raw == 'foo=f&baz=b');
asserts.assert(o.query == 'foo=f&baz=b');
return Noise;
})
.handle(asserts.handle);
return asserts;
}

public function merged() {
proxy.merged({foo: 'foo', bar: 'bar', baz: 'baz'})
.next(function (o) {
asserts.assert(o.foo == 'foo');
asserts.assert(o.bar == 'bar');
asserts.assert(o.baz == 'baz');
return Noise;
})
.handle(asserts.handle);
Expand Down

0 comments on commit 4c5823e

Please sign in to comment.