microsoft/vscode-react-native

Public

mirrored from https://github.com/microsoft/vscode-react-nativeAvailable

CodeCommitsIssuesPull requestsActionsInsightsSecurity
fedb8b9422daaac6072e1a09072c2f7f5077df44

Branches

Tags

  • No tags available.
0Branches0Tags
Go to file
Add file
Code

Clone

HTTPS

Download ZIP

test/extension/packager.test.ts

132lines · modecode

1// Copyright (c) Microsoft Corporation. All rights reserved.
2// Licensed under the MIT license. See LICENSE file in the project root for details.
3
4import { Packager } from "../../src/common/packager";
5import { Request } from "../../src/common/node/request";
6import { ExponentHelper } from "../../src/extension/exponent/exponentHelper";
7
8import * as assert from "assert";
9import * as sinon from "sinon";
10
11suite("packager", function () {
12 suite("extensionContext", function () {
13 let requestStub: Sinon.SinonStub;
14 let isExpoAppStub: Sinon.SinonStub;
15 let getExpPackagerOptionsStub: Sinon.SinonStub;
16
17 setup(() => {
18 requestStub = sinon.stub(Request, "request");
19 isExpoAppStub = sinon.stub(ExponentHelper.prototype, "isExpoApp");
20 getExpPackagerOptionsStub = sinon.stub(ExponentHelper.prototype, "getExpPackagerOptions");
21 });
22
23 teardown(() => {
24 requestStub.restore();
25 isExpoAppStub.restore();
26 getExpPackagerOptionsStub.restore();
27 });
28
29 test("isRunning should check correct status URL", function (done) {
30 requestStub.returns(Promise.resolve("packager-status:running"));
31
32 new Packager("/workspace", "/workspace", Packager.DEFAULT_PORT)
33 .isRunning()
34 .then(isRunning => {
35 assert(isRunning);
36 assert(requestStub.firstCall.args[0].match("http://localhost:" + Packager.DEFAULT_PORT));
37 })
38 .then(done, () => {
39 assert.fail(null, null, "packager was expected to be running");
40 done();
41 });
42 });
43
44 test("isRunning should report false if server doesn't respond", function (done) {
45 requestStub.returns(Promise.reject(void 0));
46
47 new Packager("/workspace", "/workspace", 9091)
48 .isRunning()
49 .then(isRunning => assert(!isRunning))
50 .then(done, () => {
51 assert.fail(null, null, "packager was not expected to be running");
52 done();
53 });
54 });
55
56 test("isRunning should report false if request fails", function (done) {
57 requestStub.returns(Promise.resolve("some_random_string"));
58
59 new Packager("/workspace", "/workspace", 10001)
60 .isRunning()
61 .then(isRunning => assert(!isRunning))
62 .then(done, () => {
63 assert.fail(null, null, "packager was not expected to be running");
64 done();
65 });
66 });
67
68 test("getPackagerArgs should return correct value (react-native@0.56.0)", function (done) {
69 isExpoAppStub.returns(Promise.resolve(false));
70 const rnVersion = "0.56.0";
71 const expected = ["--port", "10001"];
72 new Packager("/workspace", "/workspace", 10001)
73 .getPackagerArgs(rnVersion)
74 .then((args) => {
75 assert.deepEqual(args, expected);
76 done();
77 })
78 .catch((err) => {
79 done(err);
80 });
81 });
82
83 test("getPackagerArgs should return correct value (react-native@0.57.0)", function (done) {
84 isExpoAppStub.returns(Promise.resolve(false));
85 const rnVersion = "0.57.0";
86 const expected = ["--port", "10001", "--resetCache"];
87 new Packager("/workspace", "/workspace", 10001)
88 .getPackagerArgs(rnVersion, true)
89 .then((args) => {
90 assert.deepEqual(args, expected);
91 done();
92 })
93 .catch((err) => {
94 done(err);
95 });
96 });
97
98 test("getPackagerArgs should return correct value for expo app (react-native@0.56.0)", function (done) {
99 isExpoAppStub.returns(Promise.resolve(true));
100 getExpPackagerOptionsStub.returns(Promise.resolve({}));
101 const rnVersion = "0.56.0";
102 const expected = ["--port", "10001", "--resetCache", "--root", ".vscode"];
103 new Packager("/workspace", "/workspace", 10001)
104 .getPackagerArgs(rnVersion, true)
105 .then((args) => {
106 assert.deepEqual(args, expected);
107 done();
108 })
109 .catch((err) => {
110 done(err);
111 });
112 });
113
114 test("getPackagerArgs should return correct value for expo app (react-native@0.57.0)", function (done) {
115 isExpoAppStub.returns(Promise.resolve(true));
116 getExpPackagerOptionsStub.returns(Promise.resolve({
117 assetExts: ["txt", "md"],
118 }));
119 const rnVersion = "0.57.0";
120 const expected = ["--port", "10001", "--assetExts", [ "txt", "md"]];
121 new Packager("/workspace", "/workspace", 10001)
122 .getPackagerArgs(rnVersion)
123 .then((args) => {
124 assert.deepEqual(args, expected);
125 done();
126 })
127 .catch((err) => {
128 done(err);
129 });
130 });
131 });
132});
133