Skip to content

Commit

Permalink
Fixed #183 (recordset.sort more robust)
Browse files Browse the repository at this point in the history
  • Loading branch information
rupnikj committed Oct 6, 2015
1 parent ca74dd6 commit 3c02d50
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 7 deletions.
9 changes: 4 additions & 5 deletions src/nodejs/qm/qm_nodejs.cpp
Expand Up @@ -2040,7 +2040,7 @@ void TNodeJsRecSet::Init(v8::Handle<v8::Object> exports) {
NODE_SET_PROTOTYPE_METHOD(tpl, "sortById", _sortById);
NODE_SET_PROTOTYPE_METHOD(tpl, "sortByFq", _sortByFq);
NODE_SET_PROTOTYPE_METHOD(tpl, "sortByField", _sortByField);
NODE_SET_PROTOTYPE_METHOD(tpl, "sort", sort);
NODE_SET_PROTOTYPE_METHOD(tpl, "sort", _sort);
NODE_SET_PROTOTYPE_METHOD(tpl, "filterById", _filterById);
NODE_SET_PROTOTYPE_METHOD(tpl, "filterByFq", _filterByFq);
NODE_SET_PROTOTYPE_METHOD(tpl, "filterByField", _filterByField);
Expand Down Expand Up @@ -2935,10 +2935,10 @@ bool TJsRecPairFilter::operator()(const TUInt64IntKd& RecIdWgt1, const TUInt64In
v8::Local<v8::Value> ArgV[Argc] = { JsRec1, JsRec2 };
v8::Local<v8::Value> ReturnVal = Callbck->Call(GlobalContext, Argc, ArgV);
if (TryCatch.HasCaught()) {
TryCatch.ReThrow();
return false;
v8::String::Utf8Value Msg(TryCatch.Message()->Get());
throw TQm::TQmExcept::New("Javascript exception from callback triggered in TJsRecPairFilter::operator() :" + TStr(*Msg));
}
QmAssertR(ReturnVal->IsBoolean() || ReturnVal->IsNumber(), "Comparator callback must return a boolean!");
QmAssertR(!ReturnVal.IsEmpty() && (ReturnVal->IsBoolean() || ReturnVal->IsNumber()), "Comparator callback must return a boolean!");
return ReturnVal->IsBoolean() ? ReturnVal->BooleanValue() : ReturnVal->NumberValue() < 0;
}

Expand Down Expand Up @@ -3361,7 +3361,6 @@ void TNodeJsFtrSpace::updateRecord(const v8::FunctionCallbackInfo<v8::Value>& Ar

TNodeJsFtrSpace* JsFtrSpace = ObjectWrap::Unwrap<TNodeJsFtrSpace>(Args.Holder());

//QmAssertR(TNodeJsUtil::IsArgWrapObj<TNodeJsRec>(Args, 0), "TNodeJsFtrSpace::updateRecord Arg[0] is not a record object!");
TNodeJsRec* JsRec = TNodeJsUtil::UnwrapCheckWatcher<TNodeJsRec>(Args[0]->ToObject());

// update with new records
Expand Down
4 changes: 2 additions & 2 deletions test/nodejs/recordset.js
Expand Up @@ -333,12 +333,12 @@ describe('Record Set Tests', function () {
assert.equal(recSet[0].Title, "Enteng Kabisote 3: Okay ka fairy ko... The legend goes on and on and on");
assert.equal(recSet[1].Title, "Every Day");
})
it.skip('should throw an exception, if the function is incomplete', function () {
it('should throw an exception, if the function is incomplete', function () {
assert.throws(function () {
recSet.sort(function (rec, rec2) { });
})
})
it.skip('should throw an exception, if no parameter is given', function () {
it('should throw an exception, if no parameter is given', function () {
assert.throws(function () {
recSet.sort();
})
Expand Down

0 comments on commit 3c02d50

Please sign in to comment.