Skip to content

Commit 1f91b50

Browse files
committed
Add error check for more kinds of
selection
1 parent 6748a47 commit 1f91b50

File tree

2 files changed

+33
-1
lines changed

2 files changed

+33
-1
lines changed

lib/sort-json-core.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,10 @@ function selectedTextToSortedText(selectedText, indent, sortOrder) {
110110

111111
let object = ast.program.body[0].declarations[0].init;
112112

113+
if (ast.program.body.length > 1 || object.type !== 'ObjectExpression') {
114+
throw { message: 'Please make sure your selected text is a JS obejct!' };
115+
}
116+
113117
sortObject(object, sortOrder);
114118

115119
let sortedText = generate.default(ast, {}, code).code;

test/extension.test.js

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ var assert = require('assert');
1111
// You can import and use all API from the 'vscode' module
1212
// as well as import your extension to test it
1313
var sorter = require('../lib/sort-json-core');
14-
var JSON5 = require('json5');
1514

1615
suite('Extension Tests', function() {
1716
test('normal js object asc', function() {
@@ -63,6 +62,35 @@ suite('Extension Tests', function() {
6362
assert.equal(result, 'Please make sure your selected text is a JS obejct!');
6463
});
6564

65+
test('Not js object 3', function() {
66+
var jsObject = `'111'`;
67+
68+
var result;
69+
try {
70+
result = sorter.sort(jsObject, 4, ['asc'], {});
71+
} catch (e) {
72+
result = e.message;
73+
}
74+
75+
assert.equal(result, 'Please make sure your selected text is a JS obejct!');
76+
});
77+
78+
test('Not js object 4', function() {
79+
var jsObject = `{
80+
a:1,
81+
b:2
82+
}; var b = 2;`;
83+
84+
var result;
85+
try {
86+
result = sorter.sort(jsObject, 4, ['asc'], {});
87+
} catch (e) {
88+
result = e.message;
89+
}
90+
91+
assert.equal(result, 'Please make sure your selected text is a JS obejct!');
92+
});
93+
6694
test('normal js object desc', function() {
6795
var jsObject = `{
6896
user: 'user',

0 commit comments

Comments
 (0)