Skip to content

Commit 24b1c4b

Browse files
committed
feat: added UT for site
1 parent 11bd86d commit 24b1c4b

File tree

2 files changed

+44
-20
lines changed

2 files changed

+44
-20
lines changed

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,7 @@
9393
"prepare": "sf-install",
9494
"test": "wireit",
9595
"test:nuts": "nyc mocha \"**/*.nut.ts\" --slow 4500 --timeout 600000 --parallel",
96+
"test:site": "nyc mocha \"**/site.test.ts\" --slow 4500 --timeout 600000 --parallel",
9697
"test:only": "wireit",
9798
"unlink-lwr": "yarn unlink @lwrjs/api @lwrjs/app-service @lwrjs/asset-registry @lwrjs/asset-transformer @lwrjs/auth-middleware @lwrjs/base-view-provider @lwrjs/base-view-transformer @lwrjs/client-modules @lwrjs/config @lwrjs/core @lwrjs/dev-proxy-server @lwrjs/diagnostics @lwrjs/esbuild @lwrjs/everywhere @lwrjs/fs-asset-provider @lwrjs/fs-watch @lwrjs/html-view-provider @lwrjs/instrumentation @lwrjs/label-module-provider @lwrjs/lambda @lwrjs/legacy-npm-module-provider @lwrjs/loader @lwrjs/lwc-module-provider @lwrjs/lwc-ssr @lwrjs/markdown-view-provider @lwrjs/module-bundler @lwrjs/module-registry @lwrjs/npm-module-provider @lwrjs/nunjucks-view-provider @lwrjs/o11y @lwrjs/resource-registry @lwrjs/router @lwrjs/security @lwrjs/server @lwrjs/shared-utils @lwrjs/static @lwrjs/tools @lwrjs/types @lwrjs/view-registry lwr",
9899
"update-snapshots": "node --loader ts-node/esm --no-warnings=ExperimentalWarning \"./bin/dev.js\" snapshot:generate",

test/commands/lightning/dev/site.test.ts

Lines changed: 43 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -4,39 +4,62 @@
44
* Licensed under the BSD 3-Clause license.
55
* For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
66
*/
7+
8+
import { strictEqual } from 'node:assert';
79
import { TestContext } from '@salesforce/core/testSetup';
8-
// import { expect } from 'chai';
9-
// import { stubSfCommandUx } from '@salesforce/sf-plugins-core';
10-
// import LightningDevSite from '../../../../src/commands/lightning/dev/site.js';
10+
import { expect } from 'chai';
11+
import { Org } from '@salesforce/core';
12+
import { LocalDevOptions } from '@lwrjs/api';
13+
import LightningDevSite from '../../../../src/commands/lightning/dev/site.js';
14+
import { OrgUtils } from '../../../../src/shared/orgUtils.js';
1115

12-
// TODO fix me once we have a fully working command
1316
describe('lightning dev site', () => {
1417
const $$ = new TestContext();
15-
// let sfCommandStubs: ReturnType<typeof stubSfCommandUx>;
1618

1719
beforeEach(() => {
18-
// sfCommandStubs = stubSfCommandUx($$.SANDBOX);
20+
$$.SANDBOX.stub(OrgUtils, 'isLocalDevEnabled').resolves(true);
21+
$$.SANDBOX.stub(OrgUtils, 'ensureMatchingAPIVersion').returns();
1922
});
2023

2124
afterEach(() => {
2225
$$.restore();
2326
});
2427

25-
it('runs hello', async () => {
26-
// await LightningDevSite.run([]);
27-
// const output = sfCommandStubs.log
28-
// .getCalls()
29-
// .flatMap((c) => c.args)
30-
// .join('\n');
31-
// expect(output).to.include('hello world');
28+
it('should have summary, description, and examples defined', () => {
29+
strictEqual(typeof LightningDevSite.summary, 'string', 'Summary should be a string');
30+
strictEqual(typeof LightningDevSite.description, 'string', 'Description should be a string');
31+
strictEqual(typeof LightningDevSite.examples, 'object', 'Examples should be an array');
32+
});
33+
34+
it('result should be undefined if local development is not enabled', async () => {
35+
$$.SANDBOX.restore();
36+
$$.SANDBOX.stub(OrgUtils, 'isLocalDevEnabled').resolves(false);
37+
const result = await LightningDevSite.run(['--name', 'Astro', '--target-org', '00Dxx0000001gEH']);
38+
expect(result).to.be.undefined;
3239
});
3340

34-
it('runs hello world --name Astro', async () => {
35-
// await LightningDevSite.run(['--name', 'Astro']);
36-
// const output = sfCommandStubs.log
37-
// .getCalls()
38-
// .flatMap((c) => c.args)
39-
// .join('\n');
40-
// expect(output).to.include('hello Astro');
41+
it('should have valid startupParams', async () => {
42+
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-explicit-any
43+
const org = new Org({ id: '00Dxx0000001gEH', connection: {} } as any);
44+
$$.SANDBOX.stub(Org, 'create').returns(Promise.resolve(org));
45+
46+
const startupParams: LocalDevOptions = {
47+
sfCLI: true,
48+
authToken: 'test-auth-token',
49+
open: true,
50+
port: 3000,
51+
logLevel: 'error',
52+
mode: 'dev',
53+
siteZip: 'test-site-zip',
54+
siteDir: 'test-site-dir',
55+
};
56+
57+
$$.SANDBOX.stub(LightningDevSite, 'run').resolves(Promise.resolve(startupParams));
58+
process.env.SETUP_ONLY = 'true';
59+
60+
const result = await LightningDevSite.run(['--name', 'Astro', '--target-org', '00Dxx0000001gEH']);
61+
delete process.env.SETUP_ONLY;
62+
63+
expect(result).to.deep.equal(startupParams);
4164
});
4265
});

0 commit comments

Comments
 (0)