Skip to content

Commit dea6069

Browse files
XiaochenCuiKernelDeimos
authored andcommitted
fs/stat: return_permissions -> return_shares, update tests as well
1 parent 97eeadb commit dea6069

File tree

3 files changed

+25
-6
lines changed

3 files changed

+25
-6
lines changed

src/backend/src/filesystem/hl_operations/hl_stat.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,8 @@ class HLStat extends HLFilesystemOperation {
2929
const {
3030
subject, user,
3131
return_subdomains,
32-
return_permissions,
32+
return_permissions, // Deprecated: kept for backwards compatiable with `return_shares`
33+
return_shares,
3334
return_versions,
3435
return_size,
3536
} = this.values;
@@ -55,8 +56,7 @@ class HLStat extends HLFilesystemOperation {
5556

5657
if (return_size) await subject.fetchSize(user);
5758
if (return_subdomains) await subject.fetchSubdomains(user)
58-
if (return_permissions) {
59-
subject.entry.permissions = [];
59+
if (return_shares || return_permissions) {
6060
await subject.fetchShares();
6161
}
6262
if (return_versions) await subject.fetchVersions();

src/backend/src/routers/filesystem_api/stat.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ module.exports = eggspress('/stat', {
4343
user: req.user,
4444
return_subdomains: req.body.return_subdomains,
4545
return_permissions: req.body.return_permissions,
46+
return_shares: req.body.return_shares,
4647
return_versions: req.body.return_versions,
4748
return_size: req.body.return_size,
4849
});

tools/api-tester/tests/stat.js

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,23 @@ module.exports = {
4646
expect(threw).true;
4747
});
4848

49-
const flags = ['permissions', 'versions'];
49+
await t.case('stat with versions', async () => {
50+
result = await t.stat(TEST_FILENAME, {
51+
return_versions: true,
52+
});
53+
54+
await verify_fsentry(t, result);
55+
await t.case('filename is correct', () => {
56+
expect(result.name).equal(`test_stat.txt`);
57+
});
58+
await t.case(`result has versions array`, () => {
59+
expect(Array.isArray(result.versions)).true;
60+
});
61+
})
62+
63+
// Backend should return 'shares' field when 'return_shares' is true. And
64+
// the backwards compatiable of `return_permissions` is also tested here.
65+
const flags = ['shares', 'permissions'];
5066
for ( const flag of flags ) {
5167
await t.case('stat with ' + flag, async () => {
5268
result = await t.stat(TEST_FILENAME, {
@@ -57,8 +73,10 @@ module.exports = {
5773
await t.case('filename is correct', () => {
5874
expect(result.name).equal(`test_stat.txt`);
5975
});
60-
await t.case(`result has ${flag} array`, () => {
61-
expect(Array.isArray(result[flag])).true;
76+
await t.case(`result has shares (apps and users)`, () => {
77+
expect('shares' in result).true;
78+
expect(Array.isArray(result['shares']['users'])).true;
79+
expect(Array.isArray(result['shares']['apps'])).true;
6280
});
6381
})
6482
}

0 commit comments

Comments
 (0)