From 08dee2fed48e00a97563799759b6cc9307150d08 Mon Sep 17 00:00:00 2001 From: Scott Andrews Date: Mon, 29 Jul 2013 11:48:18 -0400 Subject: [PATCH] Relax assertions that require a native Object.defineProperties environments without --- test/mime/type/application/hal-test.js | 27 +++++++++++++++++++++----- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/test/mime/type/application/hal-test.js b/test/mime/type/application/hal-test.js index 8130d4f..cf83a3c 100644 --- a/test/mime/type/application/hal-test.js +++ b/test/mime/type/application/hal-test.js @@ -16,7 +16,7 @@ define('rest/mime/type/application/hal-test', function (require) { - var hal, mime; + var hal, mime, supports; hal = require('rest/mime/type/application/hal'); mime = require('rest/interceptor/mime'); @@ -25,6 +25,20 @@ return { request: request }; } + supports = { + 'Object.defineProperty': (function () { + try { + var obj = {}; + Object.defineProperty(obj, 'test', { enumerable: false, configurable: true, value: true }); + return obj.test; + } + catch (e) { + return false; + } + }()) + }; + + buster.testCase('rest/mime/type/application/hal', { 'should stringify json': function () { assert.equals('{"foo":"bar"}', hal.write({ foo: 'bar' })); @@ -125,11 +139,14 @@ read = hal.read(JSON.stringify(raw)); writen = hal.write(read); - refute.match(writen, '_embedded'); - refute.match(writen, '_links'); - refute.match(writen, 'clientFor'); - refute.match(writen, 'prop'); assert.match(writen, '"foo":"bar"'); + + if (!supports['Object.defineProperty']) { + refute.match(writen, '_embedded'); + refute.match(writen, '_links'); + refute.match(writen, 'clientFor'); + refute.match(writen, 'prop'); + } } });