-
Notifications
You must be signed in to change notification settings - Fork 359
NTVS 1.3 Manual Test Matrix
Manual testing matrix and test scenarios for NTVS 1.3
- Windows versions:
- Windows 8.1
- Windows 10
-
Install Visual Studio 2017 Enterprise + the Node.js Workload
-
Install Node.js (test all versions)
- Node.js v6.9.1 x86
- Node.js v4.4.5 x86
Checks creation of new NTVS projects from templates.
None
-
Go to
File -> New -> Project
-
Select the
Templates -> JavaScript -> Node.js -> Basic Azure Node.js Express 4 Application
template -
Save the new project in
c:\src
- ⭐Expected: New project should open in Visual Studio without any error messages.
-
Wait for
npm install
to finish executing in the background (see details in the Output npm pane)- ⭐Expected: Results of npm install command are printed to output pane.
- ⭐Expected: No error messages were printed to the output pane.
- ⭐Expected:
express
andpug
are listed under thenpm
node of the solution explorer.
Also run through this entire scenario using a new Typescript project, from the template: Templates -> TypeScript -> Node.js -> Basic Azure Node.js Express 4 Application
Checks basic running and debugging functionality.
Complete after Create New Project, and make sure to run this scenario for all cases 💼 of that scenario.
- Set a breakpoint in app.js on the line (or app.ts):
var app = express()
- Set a breakpoint in
routes\index.js
(orroutes\index.ts
) at the line that begins with:
res.render('index'
-
F5 to start debugging
- ⭐Expected: Ensure the browser launches (http://localhost:1337)
- ⭐Expected: The first breakpoint is
app
is hit.
-
Continue program execution.
- ⭐Expected: The breakpoint in
routes/index
is hit.
- ⭐Expected: The breakpoint in
-
Continue program execution.
- ⭐Expected: In the browser, the page now loads successfully.
Checks basic debug stepping
None
Templates -> JavaScript -> Node.js -> Blank Node.js Console Application
- In
app.js
(orapp.ts
), enter the following text:
function count(remaining) {
if (remaining <= 0)
return 0;
return remaining + count(remaining - 1);
}
var sum = 0;
sum = count(3);
sum = count(5);
-
Set a breakpoint in
count
on the linesum = count(3);
-
Start debugging the program.
- ⭐Expected: Program runs to the line
sum = count(3);
- ⭐Expected: Program runs to the line
-
Hover over the
sum
variable in the source text.- ⭐Expected: A value of
0
is displayed.
- ⭐Expected: A value of
-
Hit
step over
in the debugger:- ⭐Expected: the program continues to the line
sum = count(5);
- ⭐Expected: Hovering over
sum now shows a value of
6`.
- ⭐Expected: the program continues to the line
-
Now hit
step into
in the debugger.- ⭐Expected: The debugger is now on the first line of the
count
function. - ⭐Expected: The callstack window lists an entry for
count
at the top of the stack. - ⭐Expected: The value of
remaining
is 5.
- ⭐Expected: The debugger is now on the first line of the
-
Hit
step over
to get to the linereturn remaining + count(remaining - 1);
and then hitstep into
again- ⭐Expected: The debugger is now on the first line of the
count
function again. - ⭐Expected: The callstack window list two entries for count on the top of the stack.
- ⭐Expected: The value of remaining is now 4.
- ⭐Expected: The debugger is now on the first line of the
-
Hit
step out
in the debugger:- ⭐Expected: The debugger is now on the last line of the
count
function. - ⭐Expected: The callstack window lists one entry for
count
at the top of the stack. - ⭐Expected: The value of remaining is 5.
- ⭐Expected: The debugger is now on the last line of the
-
Hit
step out
once again:- ⭐Expected: The debugger is now on the line
sum = count(5)
- ⭐Expected: The callstack does not have any entries for count.
- ⭐Expected: The debugger is now on the line
-
Hit
step over
once:- ⭐Expected: The debugger is now on the line after
sum = count(5)
- ⭐Expected: The value of sum is
15
- ⭐Expected: The debugger is now on the line after
Also run through this entire scenario using a new Typescript project, from the template: Templates -> TypeScript -> Node.js -> Blank Node.js Console Application
Checks basic profiling functionality.
Complete after Create New Project, and make sure to run this scenario for all cases 💼 of that scenario.
- Walk through the "Profiling" and "Start your profiling session" sections in the Profiling docs.
- ⭐Expected: Verify behavior is as expected and results look like they do in all screenshots.
Checks that management of Node packages using the NPM GUI.
Complete after Create New Project, and make sure to run this scenario for all cases 💼 of that scenario.
- Walk through the "Browsing/Installing new npm packages in the GUI" documentation
- ⭐Expected: Verify behavior is as expected and results look like they do in all screenshots.
Try switching to VS themes and running through the scenario again. Make sure things are readable and nothing looks out of place in the NPM window.
Ensure that the test explorer works as expected.
Complete after Create New Project, and make sure to run this scenario for all cases 💼 of that scenario.
- Walk through the Test Explorer documentation
- ⭐Expected: Verify behavior is as expected and results look like they do in all screenshots.
Checks that basic IntelliSense functions as expected.
None
-
File -> New Project -> JavaScript -> Node.js -> Blank Node.js Console Application
-
Create a new directory named
hello
. -
Right click on the directory to add a new javascript item
item1.js
- ⭐Expected:
hello/item1.js
file should now exist and be open in editor. - ⭐Expected: The top of the editor does have a dropdown bar dropdowns.
- ⭐Expected:
-
Type
process.
in thehello/item1.js
file- ⭐Expected: After typing the
.
, you should see a list of completions. - ⭐Expected:
arch
appears in the completions list, with a (non-warning) glyph to the left-hand side of it.
- ⭐Expected: After typing the
-
Change
hello/item1.js
to:
var fs = require('fs');
fs.
- ⭐Expected: List of completions should be displayed after typing the
.
infs.
- ⭐Expected:
writeFile
Exists in the completions list, with a (non-warning) glyph to the left-hand side of it.
- Change
hello/item1.js
to:
module.exports.a = 3;
module.exports.b = "hi";
- Back in
app.js
, add the following at the end of the file:
var item = require('./hello/item1');
item.
- ⭐Expected: List of completions should be displayed after typing the
.
initem.
, starting witha
andb
. - ⭐Expected: completion list items
a
andb
have a (non-warning) glyph to the left-hand side of them.
- Now select the completion for
b
so that the text file looks like this:
var item = require('./hello/item1');
item.b
- Hover over the
b
and hitF12
.
- ⭐Expected: Editor opens ``hello/item1
file and highlights the
module.exports.b = ...` line
Interactive window can evaluate expressions and run simple npm commands.
Complete after Create New Project, and make sure to run this scenario for all cases 💼 of that scenario.
-
With an open project.
-
Open the Node.js Interactive Window using
Ctrl+K
,N
- ⭐Expected: Node.js Interactive window should now be open with no error messages.
-
Run
var a; a = [1, 2, 3].map(function(x) { return x * x; })
- ⭐Expected: The result
[ 1, 4, 9]
is printed
- ⭐Expected: The result
-
Press the up arrow.
- ⭐Expected: The previous command (
var a; a = [1, 2, 3].map(function(x) { return x * x; })
) should now be in the active buffer.
- ⭐Expected: The previous command (
-
Clear the active buffer and enter
a
.- ⭐Expected: The result
[ 1, 4, 9]
is printed again.
- ⭐Expected: The result
-
Run
.npm install azure --save-dev
in the interactive window and wait for the command to complete- ⭐Expected: There are no error or warning messages.
- ⭐Expected: The output is readable and doesn’t include any odd characters.
- ⭐Expected: An entry for
azure
is now listed in thenpm -> Dev
node in Solution Explorer.
Interactive window can evaluate expressions when no projects are loaded
None
-
Without any open project (such as first boot of VS)
-
Open the Node.js Interactive Window using
Ctrl+K
,N
- ⭐Expected: Node.js Interactive window should now be open with no error messages.
-
Run
var a; a = [1, 2, 3].map(function(x) { return x * x; })
- ⭐Expected: The result
[ 1, 4, 9]
is printed
- ⭐Expected: The result
-
In current project.
-
Open the
Node.js interactive Window
:Tools -> Node.js Tools -> Node.js Interactive Window
-
Run
.npm install underscore --save
in the interactive window and wait for the command to complete.- ⭐Expected:
underscore
should now be listed in thenpm
node of the Solution Explorer.
- ⭐Expected:
-
Open any Javascript file.
-
At the end of the file, type:
var _ = require('underscore');
_.
- ⭐Expected: After typing the
.
, you should see a list of completions forunderscore
, includingapply
andfirst
- ⭐Expected: Completion list items
apply
andfirst
have (non-warning) glyphs to the left-hand side of them