diff --git a/src/common/FakerMethods.js b/src/common/FakerMethods.js index efa02bd2..fe7c7ec4 100644 --- a/src/common/FakerMethods.js +++ b/src/common/FakerMethods.js @@ -134,8 +134,8 @@ export default class { { name: 'phoneNumberFormat', group: 'phone', types: ['string'] }, { name: 'phoneFormats', group: 'phone', types: ['string'] }, - { name: 'number', group: 'random', types: ['string', 'number'] }, - { name: 'float', group: 'random', types: ['string', 'float'] }, + { name: 'number', group: 'random', types: ['string', 'number'], params: ['min', 'max'] }, + { name: 'float', group: 'random', types: ['string', 'float'], params: ['min', 'max'] }, { name: 'arrayElement', group: 'random', types: ['string'] }, { name: 'arrayElements', group: 'random', types: ['string'] }, { name: 'objectElement', group: 'random', types: ['string'] }, diff --git a/src/main/ipc-handlers/tables.js b/src/main/ipc-handlers/tables.js index 6fafb6c0..f1eaf229 100644 --- a/src/main/ipc-handlers/tables.js +++ b/src/main/ipc-handlers/tables.js @@ -218,7 +218,7 @@ export default (connections) => { let escapedParam; if (!('group' in params.row[key]) || params.row[key].group === 'manual') { // Manual value - if (params.row[key].value === null) + if (params.row[key].value === null || params.row[key].value === undefined) escapedParam = 'NULL'; else if ([...NUMBER, ...FLOAT].includes(type)) escapedParam = params.row[key].value; @@ -238,9 +238,15 @@ export default (connections) => { insertObj[key] = escapedParam; } else { // Faker value - let fakeValue = faker[params.row[key].group][params.row[key].method](); + const parsedParams = {}; + Object.keys(params.row[key].params).forEach(param => { + if (!isNaN(params.row[key].params[param])) + parsedParams[param] = +params.row[key].params[param]; + }); - if ([...TEXT, ...LONG_TEXT].includes(type)) { + let fakeValue = faker[params.row[key].group][params.row[key].method](parsedParams); + + if (typeof fakeValue === 'string') { if (params.row[key].length) fakeValue = fakeValue.substr(0, params.row[key].length); fakeValue = `"${sqlEscaper(fakeValue)}"`; diff --git a/src/renderer/components/FakerSelect.vue b/src/renderer/components/FakerSelect.vue index 71715942..c86bf453 100644 --- a/src/renderer/components/FakerSelect.vue +++ b/src/renderer/components/FakerSelect.vue @@ -74,6 +74,17 @@ :type="inputProps().type" :disabled="!isChecked" > + @@ -107,7 +118,8 @@ export default { selectedGroup: 'manual', selectedMethod: '', selectedValue: '', - debounceTimeout: null + debounceTimeout: null, + methodParams: {} }; }, computed: { @@ -127,6 +139,9 @@ export default { }, fakerMethods () { return FakerMethods.getMethods({ type: this.localType, group: this.selectedGroup }); + }, + methodData () { + return this.fakerMethods.find(method => method.name === this.selectedMethod); } }, watch: { @@ -197,6 +212,7 @@ export default { this.$emit('update:value', { group: this.selectedGroup, method: this.selectedMethod, + params: this.methodParams, value: this.selectedValue, length: this.fieldLength }); diff --git a/src/renderer/components/ModalFakerRows.vue b/src/renderer/components/ModalFakerRows.vue index 1406bf2f..9283ae12 100644 --- a/src/renderer/components/ModalFakerRows.vue +++ b/src/renderer/components/ModalFakerRows.vue @@ -5,7 +5,7 @@ - - -