New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

react-querybuilder

Package Overview
Dependencies
Maintainers
2
Versions
197
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

react-querybuilder - npm Package Compare versions

Comparing version 3.0.0 to 3.0.1

3

CHANGELOG.md
## Change Log
### v3.0.0 (2019/11/29)
- [#115](https://github.com/sapientglobalmarkets/react-querybuilder/pull/115) Add ruleGroup-header div (@jakeboone02)
### v2.5.1 (2019/11/11)

@@ -4,0 +7,0 @@ - [#113](https://github.com/sapientglobalmarkets/react-querybuilder/pull/113) Bugfix/not property (@romanlamsal)

2

package.json
{
"name": "react-querybuilder",
"version": "3.0.0",
"version": "3.0.1",
"description": "The React <QueryBuilder /> component for constructing queries",

@@ -5,0 +5,0 @@ "main": "dist/index.js",

@@ -237,2 +237,24 @@ import cloneDeep from 'lodash/cloneDeep';

/**
* @param {RuleType} rule
* @returns {string|boolean}
*/
const getRuleDefaultValue = (rule) => {
let value = '';
const values = getValues(rule.field, rule.operator);
if (values.length) {
value = values[0].name;
} else {
const editorType = getValueEditorType(rule.field, rule.operator);
if (editorType === 'checkbox') {
value = false;
}
}
return value;
}
/**
* Adds a rule to the query

@@ -245,3 +267,6 @@ * @param {RuleType} rule Rule to add

const parent = findRule(parentId, rootCopy);
parent.rules.push(rule);
parent.rules.push({
...rule,
value: getRuleDefaultValue(rule),
});
setRoot(rootCopy);

@@ -274,5 +299,8 @@ _notifyQueryChange(rootCopy);

// Reset operator and value for field change
// Reset operator and set default value for field change
if (prop === 'field') {
Object.assign(rule, { operator: getOperators(rule.field)[0].name, value: '' });
Object.assign(rule, {
operator: getOperators(rule.field)[0].name,
value: getRuleDefaultValue(rule),
});
}

@@ -279,0 +307,0 @@

@@ -429,3 +429,3 @@ import { mount } from 'enzyme';

let wrapper, onQueryChange;
const fields = [{ name: 'Field 1', value: 'field1' }, { name: 'Field 2', value: 'field2' }];
const fields = [{ name: 'field1', label: 'Field1' }, { name: 'field2', label: 'Field 2' }];

@@ -516,3 +516,59 @@ beforeEach(() => {

});
it('should set default value for a rule', () => {
wrapper.setProps({
fields,
onQueryChange,
getValues: (field) => {
if (field === 'field1') {
return [
{ name: 'value1', label: 'Value 1'},
{ name: 'value2', label: 'Value 2'},
]
};
return [];
},
getValueEditorType: (field) => {
if (field === 'field2') return 'checkbox';
return 'text';
}
});
wrapper
.find('.ruleGroup-addRule')
.first()
.simulate('click');
expect(onQueryChange.getCall(1).args[0].rules).to.have.length(1);
expect(onQueryChange.getCall(1).args[0].rules[0].value).to.equal('value1');
wrapper
.find('.rule-fields')
.first()
.simulate('change', { target: { value: 'field2' } });
expect(onQueryChange.getCall(2).args[0].rules[0].field).to.equal('field2');
expect(onQueryChange.getCall(2).args[0].rules[0].value).to.equal(false);
wrapper.setProps({
fields: fields.slice(1),
onQueryChange,
getValueEditorType: (field) => {
if (field === 'field2') return 'checkbox';
return 'text';
}
});
wrapper
.find('.ruleGroup-addRule')
.first()
.simulate('click');
expect(onQueryChange.getCall(3).args[0].rules).to.have.length(2);
expect(onQueryChange.getCall(3).args[0].rules[0].value).to.equal(false);
});
});
});
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc