1+ import vscode = require( 'vscode' ) ;
2+ import sinon = require( 'sinon' ) ;
3+ import path = require( 'path' ) ;
4+ import * as assert from 'assert' ;
5+ import * as fs from 'fs-extra' ;
6+
7+ import { mockExtensionContext } from '../common' ;
8+ import * as session from '../../session' ;
9+ import * as workspace from '../../workspaceViewer' ;
10+
11+ const extension_root : string = path . join ( __dirname , '..' , '..' , '..' ) ;
12+ const workspaceFile = path . join ( extension_root , 'test' , 'rFiles' , 'session' , 'workspace.json' ) ;
13+
14+ function mockWorkspaceData ( sandbox : sinon . SinonSandbox ) {
15+ const content = fs . readFileSync ( workspaceFile , 'utf8' ) ;
16+ const workspaceData = JSON . parse ( content ) as session . WorkspaceData ;
17+ return sandbox . stub ( session , 'workspaceData' ) . value ( workspaceData ) ;
18+ }
19+
20+ suite ( 'Workspace Viewer' , ( ) => {
21+ let sandbox : sinon . SinonSandbox ;
22+ let workspaceViewer : workspace . WorkspaceDataProvider ;
23+ let nodes : vscode . TreeItem [ ] ;
24+
25+ setup ( ( ) => {
26+ sandbox = sinon . createSandbox ( ) ;
27+ } ) ;
28+ teardown ( ( ) => {
29+ sandbox . restore ( ) ;
30+ } ) ;
31+
32+ test ( 'has 3 nodes' , async ( ) => {
33+ mockExtensionContext ( extension_root , sandbox ) ;
34+ mockWorkspaceData ( sandbox ) ;
35+ workspaceViewer = new workspace . WorkspaceDataProvider ( ) ;
36+ workspaceViewer . refresh ( ) ;
37+ nodes = await workspaceViewer . getChildren ( ) ;
38+ assert . strictEqual ( nodes . length , 3 ) ;
39+ } ) ;
40+
41+ test ( 'search node' , async ( ) => {
42+ const search = await workspaceViewer . getChildren ( nodes [ 0 ] ) ;
43+ assert . strictEqual ( search . length , 10 ) ;
44+ } ) ;
45+
46+ test ( 'attached node' , async ( ) => {
47+ const attached = await workspaceViewer . getChildren ( nodes [ 1 ] ) ;
48+ assert . strictEqual ( attached . length , 14 ) ;
49+ } ) ;
50+
51+ test ( 'env node' , async ( ) => {
52+ const env : workspace . GlobalEnvItem [ ] = await workspaceViewer . getChildren ( nodes [ 2 ] ) as workspace . GlobalEnvItem [ ] ;
53+ assert . strictEqual ( env . length , 9 ) ;
54+ } ) ;
55+ } ) ;
0 commit comments