Skip to content

Commit 3d19f47

Browse files
committed
test: user-menu: coverage
1 parent 4533a25 commit 3d19f47

File tree

4 files changed

+38
-12
lines changed

4 files changed

+38
-12
lines changed

client/sw/register.spec.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ test('sw: register: registerSW', async (t, {location, navigator}) => {
8484
const {register} = navigator.serviceWorker;
8585
await registerSW('/hello');
8686

87-
t.calledWith(register, ['/hello/sw.mjs'], 'should call register');
87+
t.calledWith(register, ['/hello/sw.js'], 'should call register');
8888
t.end();
8989
});
9090

@@ -98,6 +98,6 @@ test('sw: register: unregisterSW', async (t, {location, navigator}) => {
9898

9999
await unregisterSW('/hello');
100100

101-
t.calledWith(register, ['/hello/sw.mjs'], 'should call register');
101+
t.calledWith(register, ['/hello/sw.js'], 'should call register');
102102
t.end();
103103
});

server/cloudcmd.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import * as cloudfunc from '#common/cloudfunc';
1818
import authentication from './auth.js';
1919
import {createConfig, configPath} from './config.js';
2020
import modulas from './modulas.js';
21-
import userMenu from './user-menu.js';
21+
import {userMenu} from './user-menu.js';
2222
import rest from './rest/index.js';
2323
import route from './route.js';
2424
import * as validate from './validate.js';

server/user-menu.js

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
import {homedir} from 'node:os';
22
import {readFile as _readFile} from 'node:fs/promises';
33
import {join} from 'node:path';
4+
import {readFileSync} from 'node:fs';
5+
// warm up worker cache
46
import montag from 'montag';
57
import {tryToCatch} from 'try-to-catch';
68
import currify from 'currify';
@@ -10,9 +12,8 @@ import {putout, codeframe} from 'putout';
1012
transpile('');
1113

1214
const PREFIX = '/api/v1/user-menu';
13-
const DEFAULT_MENU_PATH = new URL('../static/user-menu.js', import.meta.url).pathname;
1415

15-
export default currify(async ({menuName, readFile = _readFile}, req, res, next) => {
16+
export const userMenu = currify(async ({menuName, readFile = _readFile}, req, res, next) => {
1617
if (!req.url.startsWith(PREFIX))
1718
return next();
1819

@@ -34,7 +35,7 @@ async function onGET({req, res, menuName, readFile}) {
3435
const url = req.url.replace(PREFIX, '');
3536

3637
if (url === '/default')
37-
return sendDefaultMenu(res);
38+
return await sendDefaultMenu(res);
3839

3940
const {findUp} = await import('find-up');
4041

@@ -57,7 +58,7 @@ async function onGET({req, res, menuName, readFile}) {
5758
.send(e.message);
5859

5960
if (e)
60-
return sendDefaultMenu(res);
61+
return await sendDefaultMenu(res);
6162

6263
const [parseError, result] = await transpile(source);
6364

@@ -85,10 +86,12 @@ function getError(error, source) {
8586
`;
8687
}
8788

88-
function sendDefaultMenu(res) {
89-
res.sendFile(DEFAULT_MENU_PATH, {
90-
cacheControl: false,
91-
});
89+
async function sendDefaultMenu(res) {
90+
const menu = await getDefaultMenu();
91+
92+
res
93+
.type('js')
94+
.send(menu);
9295
}
9396

9497
async function transpile(source) {
@@ -102,3 +105,11 @@ async function transpile(source) {
102105
],
103106
});
104107
}
108+
109+
async function getDefaultMenu() {
110+
const DEFAULT_MENU_PATH = new URL('../static/user-menu.js', import.meta.url).pathname;
111+
const menu = readFileSync(DEFAULT_MENU_PATH, 'utf8');
112+
const [, result] = await transpile(menu);
113+
114+
return result.code;
115+
}

server/user-menu.spec.js

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import {readFileSync} from 'node:fs';
44
import {test, stub} from 'supertape';
55
import serveOnce from 'serve-once';
66
import {putout} from 'putout';
7-
import userMenu from './user-menu.js';
7+
import {userMenu} from './user-menu.js';
88

99
const __filename = fileURLToPath(import.meta.url);
1010
const __dirname = dirname(__filename);
@@ -54,6 +54,21 @@ test('cloudcmd: user menu: io.mv', async (t) => {
5454
t.end();
5555
});
5656

57+
test('cloudcmd: user menu: default menu', async (t) => {
58+
const options = {
59+
menuName: '111.cloudcmd.menu.js',
60+
};
61+
62+
const {request} = serveOnce(userMenu);
63+
64+
const {body} = await request.get(`/api/v1/user-menu?dir=abcd`, {
65+
options,
66+
});
67+
68+
t.match(body, 'module.exports');
69+
t.end();
70+
});
71+
5772
test('cloudcmd: user menu: io.cp', async (t) => {
5873
const readFile = stub().returns(fixtureCopy);
5974
const options = {

0 commit comments

Comments
 (0)