1
- import { commands } from 'vscode' ;
2
1
import path from 'path' ;
2
+ import { commands } from 'vscode' ;
3
3
4
+ import openDocumentByReference from './openDocumentByReference' ;
4
5
import {
5
6
createFile ,
6
7
rndName ,
7
8
getWorkspaceFolder ,
8
9
getOpenedFilenames ,
9
10
getOpenedPaths ,
10
11
closeEditorsAndCleanWorkspace ,
12
+ toPlainObject ,
11
13
} from '../test/testUtils' ;
12
14
13
15
describe ( 'openDocumentByReference command' , ( ) => {
@@ -21,31 +23,31 @@ describe('openDocumentByReference command', () => {
21
23
22
24
await createFile ( filename ) ;
23
25
24
- await commands . executeCommand ( '_memo. openDocumentByReference' , { reference : name } ) ;
26
+ await openDocumentByReference ( { reference : name } ) ;
25
27
26
- expect ( getOpenedFilenames ( ) ) . toContain ( filename ) ;
28
+ expect ( getOpenedPaths ( ) ) . toContain ( ` ${ path . join ( getWorkspaceFolder ( ) ! , filename ) } ` ) ;
27
29
} ) ;
28
30
29
31
it ( 'should create a new text document if does not exist yet' , async ( ) => {
30
32
const name = rndName ( ) ;
31
33
32
34
expect ( getOpenedFilenames ( ) ) . not . toContain ( `${ name } .md` ) ;
33
35
34
- await commands . executeCommand ( '_memo. openDocumentByReference' , { reference : name } ) ;
36
+ await openDocumentByReference ( { reference : name } ) ;
35
37
36
- expect ( getOpenedFilenames ( ) ) . toContain ( `${ name } .md` ) ;
38
+ expect ( getOpenedPaths ( ) ) . toContain ( `${ path . join ( getWorkspaceFolder ( ) ! , ` ${ name } .md` ) } ` ) ;
37
39
} ) ;
38
40
39
41
it ( 'should open a text document from a reference with label' , async ( ) => {
40
42
const name = rndName ( ) ;
41
43
42
44
expect ( getOpenedFilenames ( ) ) . not . toContain ( `${ name } .md` ) ;
43
45
44
- await commands . executeCommand ( '_memo. openDocumentByReference' , {
46
+ await openDocumentByReference ( {
45
47
reference : `${ name } |Test Label` ,
46
48
} ) ;
47
49
48
- expect ( getOpenedFilenames ( ) ) . toContain ( `${ name } .md` ) ;
50
+ expect ( getOpenedPaths ( ) ) . toContain ( `${ path . join ( getWorkspaceFolder ( ) ! , ` ${ name } .md` ) } ` ) ;
49
51
} ) ;
50
52
51
53
it ( 'should not open a reference on inexact filename match' , async ( ) => {
@@ -54,7 +56,7 @@ describe('openDocumentByReference command', () => {
54
56
55
57
await createFile ( filename ) ;
56
58
57
- await commands . executeCommand ( '_memo. openDocumentByReference' , { reference : 'test' } ) ;
59
+ await openDocumentByReference ( { reference : 'test' } ) ;
58
60
59
61
expect ( getOpenedFilenames ( ) ) . not . toContain ( filename ) ;
60
62
} ) ;
@@ -65,11 +67,11 @@ describe('openDocumentByReference command', () => {
65
67
66
68
await createFile ( filename ) ;
67
69
68
- await commands . executeCommand ( '_memo. openDocumentByReference' , {
70
+ await openDocumentByReference ( {
69
71
reference : name . toUpperCase ( ) ,
70
72
} ) ;
71
73
72
- expect ( getOpenedFilenames ( ) ) . toContain ( filename ) ;
74
+ expect ( getOpenedPaths ( ) ) . toContain ( ` ${ path . join ( getWorkspaceFolder ( ) ! , filename ) } ` ) ;
73
75
} ) ;
74
76
75
77
it ( 'should open document by a long ref' , async ( ) => {
@@ -79,7 +81,7 @@ describe('openDocumentByReference command', () => {
79
81
await createFile ( filename ) ;
80
82
await createFile ( `/folder1/${ filename } ` ) ;
81
83
82
- await commands . executeCommand ( '_memo. openDocumentByReference' , {
84
+ await openDocumentByReference ( {
83
85
reference : `/folder1/${ name } ` ,
84
86
} ) ;
85
87
@@ -92,7 +94,7 @@ describe('openDocumentByReference command', () => {
92
94
await createFile ( `/a/${ name } .png` ) ;
93
95
await createFile ( `/b/${ name } .md` ) ;
94
96
95
- await commands . executeCommand ( '_memo. openDocumentByReference' , {
97
+ await openDocumentByReference ( {
96
98
reference : name ,
97
99
} ) ;
98
100
@@ -102,7 +104,7 @@ describe('openDocumentByReference command', () => {
102
104
it ( 'should create note automatically including folder if does not exist yet' , async ( ) => {
103
105
const name = rndName ( ) ;
104
106
105
- await commands . executeCommand ( '_memo. openDocumentByReference' , {
107
+ await openDocumentByReference ( {
106
108
reference : `folder1/folder2/${ name } ` ,
107
109
} ) ;
108
110
@@ -114,12 +116,62 @@ describe('openDocumentByReference command', () => {
114
116
it ( 'should create note automatically even with leading slash in the reference' , async ( ) => {
115
117
const name = rndName ( ) ;
116
118
117
- await commands . executeCommand ( '_memo. openDocumentByReference' , {
119
+ await openDocumentByReference ( {
118
120
reference : `/folder1/${ name } ` ,
119
121
} ) ;
120
122
121
123
expect ( getOpenedPaths ( ) ) . toContain (
122
124
`${ path . join ( getWorkspaceFolder ( ) ! , 'folder1' , `${ name } .md` ) } ` ,
123
125
) ;
124
126
} ) ;
127
+
128
+ it ( 'should open png ref with .png extension' , async ( ) => {
129
+ const name = rndName ( ) ;
130
+
131
+ const executeCommandSpy = jest . spyOn ( commands , 'executeCommand' ) ;
132
+
133
+ await openDocumentByReference ( {
134
+ reference : `${ name } .png` ,
135
+ } ) ;
136
+
137
+ expect (
138
+ toPlainObject ( executeCommandSpy . mock . calls . filter ( ( [ command ] ) => command === 'vscode.open' ) ) ,
139
+ ) . toMatchObject ( [
140
+ [
141
+ 'vscode.open' ,
142
+ expect . objectContaining ( {
143
+ $mid : 1 ,
144
+ path : path . join ( getWorkspaceFolder ( ) ! , `${ name } .png` ) ,
145
+ scheme : 'file' ,
146
+ } ) ,
147
+ ] ,
148
+ ] ) ;
149
+
150
+ executeCommandSpy . mockRestore ( ) ;
151
+ } ) ;
152
+
153
+ it ( 'should open ref with explicit md extension' , async ( ) => {
154
+ const name = rndName ( ) ;
155
+
156
+ const executeCommandSpy = jest . spyOn ( commands , 'executeCommand' ) ;
157
+
158
+ await openDocumentByReference ( {
159
+ reference : `${ name } .md` ,
160
+ } ) ;
161
+
162
+ expect (
163
+ toPlainObject ( executeCommandSpy . mock . calls . filter ( ( [ command ] ) => command === 'vscode.open' ) ) ,
164
+ ) . toMatchObject ( [
165
+ [
166
+ 'vscode.open' ,
167
+ expect . objectContaining ( {
168
+ $mid : 1 ,
169
+ path : path . join ( getWorkspaceFolder ( ) ! , `${ name } .md.md` ) ,
170
+ scheme : 'file' ,
171
+ } ) ,
172
+ ] ,
173
+ ] ) ;
174
+
175
+ executeCommandSpy . mockRestore ( ) ;
176
+ } ) ;
125
177
} ) ;
0 commit comments