doc-detective 3.5.0-dev.0 → 3.5.0-dev.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/.github/FUNDING.yml +14 -14
  2. package/.github/dependabot.yml +11 -11
  3. package/.github/workflows/auto-dev-release.yml +173 -173
  4. package/.github/workflows/npm-test.yaml +95 -96
  5. package/.github/workflows/update-core.yaml +131 -131
  6. package/CONTRIBUTIONS.md +27 -27
  7. package/LICENSE +661 -661
  8. package/README.md +110 -110
  9. package/dev/dev.config.json +3 -8
  10. package/dev/dev.spec.json +30 -30
  11. package/dev/index.js +5 -5
  12. package/package.json +47 -47
  13. package/reference.png +0 -0
  14. package/samples/.doc-detective.json +94 -94
  15. package/samples/doc-content-detect.md +10 -10
  16. package/samples/doc-content-inline-tests.md +23 -23
  17. package/samples/docker-hello.spec.json +15 -15
  18. package/samples/env +2 -2
  19. package/samples/http.spec.yaml +37 -37
  20. package/samples/kitten-search-detect.md +7 -7
  21. package/samples/kitten-search-inline.md +15 -15
  22. package/samples/kitten-search.spec.json +28 -28
  23. package/samples/local-gui.md +5 -5
  24. package/samples/tests.spec.json +70 -70
  25. package/samples/variables.env +4 -4
  26. package/scripts/bump-sync-version-core.js +108 -110
  27. package/src/checkDependencies.js +84 -84
  28. package/src/index.js +72 -72
  29. package/src/utils.js +1023 -1023
  30. package/test/artifacts/cleanup.spec.json +18 -18
  31. package/test/artifacts/config.json +6 -6
  32. package/test/artifacts/doc-content.md +23 -23
  33. package/test/artifacts/env +2 -2
  34. package/test/artifacts/httpRequest.spec.yaml +37 -37
  35. package/test/artifacts/runShell.spec.json +29 -29
  36. package/test/artifacts/setup.spec.json +18 -18
  37. package/test/artifacts/test.spec.json +46 -46
  38. package/test/resolvedTests.test.js +193 -193
  39. package/test/runTests.test.js +53 -53
  40. package/test/server/index.js +185 -185
  41. package/test/server/public/index.html +174 -174
  42. package/test/test-config.json +12 -12
  43. package/test/test-results.json +124 -124
  44. package/test/utils.test.js +634 -298
@@ -1,174 +1,174 @@
1
- <!DOCTYPE html>
2
- <html lang="en">
3
- <head>
4
- <meta charset="UTF-8">
5
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
- <title>Basic HTML Elements Demo</title>
7
- </head>
8
- <body>
9
- <header>
10
- <h1>Common HTML Elements</h1>
11
- <p>This page demonstrates common HTML elements a user might interact with.</p>
12
- </header>
13
-
14
- <nav>
15
- <ul>
16
- <li><a href="#text-inputs">Text Inputs</a></li>
17
- <li><a href="#selection-elements">Selection Elements</a></li>
18
- <li><a href="#buttons">Buttons</a></li>
19
- <li><a href="#text-elements">Text Elements</a></li>
20
- <li><a href="#lists">Lists</a></li>
21
- <li><a href="#tables">Tables</a></li>
22
- </ul>
23
- </nav>
24
-
25
- <main>
26
- <section id="text-inputs">
27
- <h2>Text Inputs</h2>
28
- <form>
29
- <div>
30
- <label for="text-input">Text Input:</label>
31
- <input type="text" id="text-input" name="text-input" placeholder="Enter some text">
32
- </div>
33
-
34
- <div>
35
- <label for="password-input">Password Input:</label>
36
- <input type="password" id="password-input" name="password-input" placeholder="Enter password">
37
- </div>
38
-
39
- <div>
40
- <label for="email-input">Email Input:</label>
41
- <input type="email" id="email-input" name="email-input" placeholder="Enter your email">
42
- </div>
43
-
44
- <div>
45
- <label for="textarea">Textarea:</label>
46
- <textarea id="textarea" name="textarea" rows="4" cols="50" placeholder="Enter longer text here..."></textarea>
47
- </div>
48
- </form>
49
- </section>
50
-
51
- <section id="selection-elements">
52
- <h2>Selection Elements</h2>
53
- <form>
54
- <div>
55
- <p>Checkboxes:</p>
56
- <input type="checkbox" id="checkbox1" name="checkbox1" value="option1">
57
- <label for="checkbox1">Option 1</label><br>
58
- <input type="checkbox" id="checkbox2" name="checkbox2" value="option2">
59
- <label for="checkbox2">Option 2</label><br>
60
- <input type="checkbox" id="checkbox3" name="checkbox3" value="option3">
61
- <label for="checkbox3">Option 3</label>
62
- </div>
63
-
64
- <div>
65
- <p>Radio Buttons:</p>
66
- <input type="radio" id="radio1" name="radio-group" value="option1">
67
- <label for="radio1">Option 1</label><br>
68
- <input type="radio" id="radio2" name="radio-group" value="option2">
69
- <label for="radio2">Option 2</label><br>
70
- <input type="radio" id="radio3" name="radio-group" value="option3">
71
- <label for="radio3">Option 3</label>
72
- </div>
73
-
74
- <div>
75
- <label for="select">Dropdown Select:</label>
76
- <select id="select" name="select">
77
- <option value="">-- Please choose an option --</option>
78
- <option value="option1">Option 1</option>
79
- <option value="option2">Option 2</option>
80
- <option value="option3">Option 3</option>
81
- </select>
82
- </div>
83
- </form>
84
- </section>
85
-
86
- <section id="buttons">
87
- <h2>Buttons</h2>
88
- <button type="button">Standard Button</button>
89
- <input type="button" value="Input Button">
90
- <input type="submit" value="Submit Button">
91
- <input type="reset" value="Reset Button">
92
- </section>
93
-
94
- <section id="text-elements">
95
- <h2>Text Elements</h2>
96
- <h3>This is a heading 3</h3>
97
- <h4>This is a heading 4</h4>
98
- <p>This is a paragraph of text. It demonstrates the paragraph element in HTML.</p>
99
- <p><strong>Bold text</strong> and <em>italic text</em> are created using the strong and em elements.</p>
100
- <p>This is a <a href="https://example.com">hyperlink</a> to example.com.</p>
101
- <blockquote>
102
- This is a blockquote. It's typically used for quoting content from another source.
103
- </blockquote>
104
- <pre>This is preformatted text.
105
- It preserves both spaces
106
- and line breaks.</pre>
107
- <code>This is inline code.</code>
108
- </section>
109
-
110
- <section id="lists">
111
- <h2>Lists</h2>
112
- <h3>Unordered List</h3>
113
- <ul>
114
- <li>Item 1</li>
115
- <li>Item 2</li>
116
- <li>Item 3</li>
117
- </ul>
118
-
119
- <h3>Ordered List</h3>
120
- <ol>
121
- <li>First item</li>
122
- <li>Second item</li>
123
- <li>Third item</li>
124
- </ol>
125
-
126
- <h3>Definition List</h3>
127
- <dl>
128
- <dt>Term 1</dt>
129
- <dd>Definition for Term 1</dd>
130
- <dt>Term 2</dt>
131
- <dd>Definition for Term 2</dd>
132
- </dl>
133
- </section>
134
-
135
- <section id="tables">
136
- <h2>Tables</h2>
137
- <table border="1">
138
- <caption>Simple Data Table</caption>
139
- <thead>
140
- <tr>
141
- <th>Name</th>
142
- <th>Age</th>
143
- <th>Country</th>
144
- </tr>
145
- </thead>
146
- <tbody>
147
- <tr>
148
- <td>John Doe</td>
149
- <td>25</td>
150
- <td>USA</td>
151
- </tr>
152
- <tr>
153
- <td>Jane Smith</td>
154
- <td>30</td>
155
- <td>Canada</td>
156
- </tr>
157
- <tr>
158
- <td>Bob Johnson</td>
159
- <td>45</td>
160
- <td>UK</td>
161
- </tr>
162
- </tbody>
163
- </table>
164
- </section>
165
- </main>
166
-
167
- <footer>
168
- <p>&copy; 2025 Basic HTML Elements Demo</p>
169
- <address>
170
- Contact: <a href="mailto:example@example.com">example@example.com</a>
171
- </address>
172
- </footer>
173
- </body>
174
- </html>
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>Basic HTML Elements Demo</title>
7
+ </head>
8
+ <body>
9
+ <header>
10
+ <h1>Common HTML Elements</h1>
11
+ <p>This page demonstrates common HTML elements a user might interact with.</p>
12
+ </header>
13
+
14
+ <nav>
15
+ <ul>
16
+ <li><a href="#text-inputs">Text Inputs</a></li>
17
+ <li><a href="#selection-elements">Selection Elements</a></li>
18
+ <li><a href="#buttons">Buttons</a></li>
19
+ <li><a href="#text-elements">Text Elements</a></li>
20
+ <li><a href="#lists">Lists</a></li>
21
+ <li><a href="#tables">Tables</a></li>
22
+ </ul>
23
+ </nav>
24
+
25
+ <main>
26
+ <section id="text-inputs">
27
+ <h2>Text Inputs</h2>
28
+ <form>
29
+ <div>
30
+ <label for="text-input">Text Input:</label>
31
+ <input type="text" id="text-input" name="text-input" placeholder="Enter some text">
32
+ </div>
33
+
34
+ <div>
35
+ <label for="password-input">Password Input:</label>
36
+ <input type="password" id="password-input" name="password-input" placeholder="Enter password">
37
+ </div>
38
+
39
+ <div>
40
+ <label for="email-input">Email Input:</label>
41
+ <input type="email" id="email-input" name="email-input" placeholder="Enter your email">
42
+ </div>
43
+
44
+ <div>
45
+ <label for="textarea">Textarea:</label>
46
+ <textarea id="textarea" name="textarea" rows="4" cols="50" placeholder="Enter longer text here..."></textarea>
47
+ </div>
48
+ </form>
49
+ </section>
50
+
51
+ <section id="selection-elements">
52
+ <h2>Selection Elements</h2>
53
+ <form>
54
+ <div>
55
+ <p>Checkboxes:</p>
56
+ <input type="checkbox" id="checkbox1" name="checkbox1" value="option1">
57
+ <label for="checkbox1">Option 1</label><br>
58
+ <input type="checkbox" id="checkbox2" name="checkbox2" value="option2">
59
+ <label for="checkbox2">Option 2</label><br>
60
+ <input type="checkbox" id="checkbox3" name="checkbox3" value="option3">
61
+ <label for="checkbox3">Option 3</label>
62
+ </div>
63
+
64
+ <div>
65
+ <p>Radio Buttons:</p>
66
+ <input type="radio" id="radio1" name="radio-group" value="option1">
67
+ <label for="radio1">Option 1</label><br>
68
+ <input type="radio" id="radio2" name="radio-group" value="option2">
69
+ <label for="radio2">Option 2</label><br>
70
+ <input type="radio" id="radio3" name="radio-group" value="option3">
71
+ <label for="radio3">Option 3</label>
72
+ </div>
73
+
74
+ <div>
75
+ <label for="select">Dropdown Select:</label>
76
+ <select id="select" name="select">
77
+ <option value="">-- Please choose an option --</option>
78
+ <option value="option1">Option 1</option>
79
+ <option value="option2">Option 2</option>
80
+ <option value="option3">Option 3</option>
81
+ </select>
82
+ </div>
83
+ </form>
84
+ </section>
85
+
86
+ <section id="buttons">
87
+ <h2>Buttons</h2>
88
+ <button type="button">Standard Button</button>
89
+ <input type="button" value="Input Button">
90
+ <input type="submit" value="Submit Button">
91
+ <input type="reset" value="Reset Button">
92
+ </section>
93
+
94
+ <section id="text-elements">
95
+ <h2>Text Elements</h2>
96
+ <h3>This is a heading 3</h3>
97
+ <h4>This is a heading 4</h4>
98
+ <p>This is a paragraph of text. It demonstrates the paragraph element in HTML.</p>
99
+ <p><strong>Bold text</strong> and <em>italic text</em> are created using the strong and em elements.</p>
100
+ <p>This is a <a href="https://example.com">hyperlink</a> to example.com.</p>
101
+ <blockquote>
102
+ This is a blockquote. It's typically used for quoting content from another source.
103
+ </blockquote>
104
+ <pre>This is preformatted text.
105
+ It preserves both spaces
106
+ and line breaks.</pre>
107
+ <code>This is inline code.</code>
108
+ </section>
109
+
110
+ <section id="lists">
111
+ <h2>Lists</h2>
112
+ <h3>Unordered List</h3>
113
+ <ul>
114
+ <li>Item 1</li>
115
+ <li>Item 2</li>
116
+ <li>Item 3</li>
117
+ </ul>
118
+
119
+ <h3>Ordered List</h3>
120
+ <ol>
121
+ <li>First item</li>
122
+ <li>Second item</li>
123
+ <li>Third item</li>
124
+ </ol>
125
+
126
+ <h3>Definition List</h3>
127
+ <dl>
128
+ <dt>Term 1</dt>
129
+ <dd>Definition for Term 1</dd>
130
+ <dt>Term 2</dt>
131
+ <dd>Definition for Term 2</dd>
132
+ </dl>
133
+ </section>
134
+
135
+ <section id="tables">
136
+ <h2>Tables</h2>
137
+ <table border="1">
138
+ <caption>Simple Data Table</caption>
139
+ <thead>
140
+ <tr>
141
+ <th>Name</th>
142
+ <th>Age</th>
143
+ <th>Country</th>
144
+ </tr>
145
+ </thead>
146
+ <tbody>
147
+ <tr>
148
+ <td>John Doe</td>
149
+ <td>25</td>
150
+ <td>USA</td>
151
+ </tr>
152
+ <tr>
153
+ <td>Jane Smith</td>
154
+ <td>30</td>
155
+ <td>Canada</td>
156
+ </tr>
157
+ <tr>
158
+ <td>Bob Johnson</td>
159
+ <td>45</td>
160
+ <td>UK</td>
161
+ </tr>
162
+ </tbody>
163
+ </table>
164
+ </section>
165
+ </main>
166
+
167
+ <footer>
168
+ <p>&copy; 2025 Basic HTML Elements Demo</p>
169
+ <address>
170
+ Contact: <a href="mailto:example@example.com">example@example.com</a>
171
+ </address>
172
+ </footer>
173
+ </body>
174
+ </html>
@@ -1,13 +1,13 @@
1
- {
2
- "input": ".",
3
- "output": ".",
4
- "logLevel": "silent",
5
- "recursive": true,
6
- "runTests": {
7
- "setup": ".",
8
- "cleanup": "."
9
- },
10
- "telemetry": {
11
- "send": false
12
- }
1
+ {
2
+ "input": ".",
3
+ "output": ".",
4
+ "logLevel": "silent",
5
+ "recursive": true,
6
+ "runTests": {
7
+ "setup": ".",
8
+ "cleanup": "."
9
+ },
10
+ "telemetry": {
11
+ "send": false
12
+ }
13
13
  }
@@ -1,125 +1,125 @@
1
- {
2
- "summary": {
3
- "specs": {
4
- "pass": 1,
5
- "fail": 0,
6
- "warning": 0,
7
- "skipped": 0
8
- },
9
- "tests": {
10
- "pass": 1,
11
- "fail": 0,
12
- "warning": 0,
13
- "skipped": 0
14
- },
15
- "contexts": {
16
- "pass": 1,
17
- "fail": 0,
18
- "warning": 0,
19
- "skipped": 0
20
- },
21
- "steps": {
22
- "pass": 6,
23
- "fail": 0,
24
- "warning": 0,
25
- "skipped": 0
26
- }
27
- },
28
- "specs": [
29
- {
30
- "result": "PASS",
31
- "id": "Do all the things! - Spec",
32
- "tests": [
33
- {
34
- "result": "PASS",
35
- "id": "Do all the things! - Test",
36
- "contexts": [
37
- {
38
- "result": "PASS",
39
- "app": "firefox",
40
- "platform": "linux",
41
- "steps": [
42
- {
43
- "result": "PASS",
44
- "resultDescription": "Set variables.",
45
- "action": "setVariables",
46
- "path": ".env",
47
- "id": "2606bcf3-2f45-4c4d-82a1-61392f5e8917"
48
- },
49
- {
50
- "result": "PASS",
51
- "resultDescription": "Executed command.",
52
- "action": "runShell",
53
- "command": "echo",
54
- "args": [
55
- "hawkeyexl"
56
- ],
57
- "id": "a15d25e8-6fa3-49c5-be3d-ae5aca0715e5"
58
- },
59
- {
60
- "result": "PASS",
61
- "resultDescription": "Returned 200",
62
- "action": "checkLink",
63
- "url": "https://www.duckduckgo.com",
64
- "id": "a4c44478-9756-4227-a63b-aa2d49aa4511",
65
- "statusCodes": [
66
- 200
67
- ]
68
- },
69
- {
70
- "result": "PASS",
71
- "resultDescription": "Returned 201. Expected response data was present in actual response data.",
72
- "action": "httpRequest",
73
- "url": "https://reqres.in/api/users",
74
- "method": "post",
75
- "requestData": {
76
- "name": "morpheus",
77
- "job": "leader"
78
- },
79
- "responseData": {
80
- "name": "morpheus",
81
- "job": "leader"
82
- },
83
- "statusCodes": [
84
- 200,
85
- 201
86
- ],
87
- "id": "fd520fd4-f32f-428b-a072-c2b2cffe3a3c",
88
- "requestHeaders": {},
89
- "responseHeaders": {},
90
- "requestParams": {},
91
- "responseParams": {},
92
- "envsFromResponseData": []
93
- },
94
- {
95
- "result": "PASS",
96
- "resultDescription": "Opened URL.",
97
- "action": "goTo",
98
- "url": "https://www.google.com",
99
- "id": "d6b47d3d-42db-45a7-8fde-3633adf30411"
100
- },
101
- {
102
- "result": "PASS",
103
- "resultDescription": "Found an element matching selector. Moved to element. Clicked element. Typed keys.",
104
- "action": "find",
105
- "selector": "[title=Search]",
106
- "timeout": 10000,
107
- "moveTo": true,
108
- "click": true,
109
- "typeKeys": {
110
- "keys": [
111
- "shorthair cat",
112
- "$ENTER$"
113
- ]
114
- },
115
- "id": "0d631a5b-6e96-4031-8d04-52d270f6e251"
116
- }
117
- ]
118
- }
119
- ],
120
- "description": "This test includes nearly every property across all actions."
121
- }
122
- ]
123
- }
124
- ]
1
+ {
2
+ "summary": {
3
+ "specs": {
4
+ "pass": 1,
5
+ "fail": 0,
6
+ "warning": 0,
7
+ "skipped": 0
8
+ },
9
+ "tests": {
10
+ "pass": 1,
11
+ "fail": 0,
12
+ "warning": 0,
13
+ "skipped": 0
14
+ },
15
+ "contexts": {
16
+ "pass": 1,
17
+ "fail": 0,
18
+ "warning": 0,
19
+ "skipped": 0
20
+ },
21
+ "steps": {
22
+ "pass": 6,
23
+ "fail": 0,
24
+ "warning": 0,
25
+ "skipped": 0
26
+ }
27
+ },
28
+ "specs": [
29
+ {
30
+ "result": "PASS",
31
+ "id": "Do all the things! - Spec",
32
+ "tests": [
33
+ {
34
+ "result": "PASS",
35
+ "id": "Do all the things! - Test",
36
+ "contexts": [
37
+ {
38
+ "result": "PASS",
39
+ "app": "firefox",
40
+ "platform": "linux",
41
+ "steps": [
42
+ {
43
+ "result": "PASS",
44
+ "resultDescription": "Set variables.",
45
+ "action": "setVariables",
46
+ "path": ".env",
47
+ "id": "2606bcf3-2f45-4c4d-82a1-61392f5e8917"
48
+ },
49
+ {
50
+ "result": "PASS",
51
+ "resultDescription": "Executed command.",
52
+ "action": "runShell",
53
+ "command": "echo",
54
+ "args": [
55
+ "hawkeyexl"
56
+ ],
57
+ "id": "a15d25e8-6fa3-49c5-be3d-ae5aca0715e5"
58
+ },
59
+ {
60
+ "result": "PASS",
61
+ "resultDescription": "Returned 200",
62
+ "action": "checkLink",
63
+ "url": "https://www.duckduckgo.com",
64
+ "id": "a4c44478-9756-4227-a63b-aa2d49aa4511",
65
+ "statusCodes": [
66
+ 200
67
+ ]
68
+ },
69
+ {
70
+ "result": "PASS",
71
+ "resultDescription": "Returned 201. Expected response data was present in actual response data.",
72
+ "action": "httpRequest",
73
+ "url": "https://reqres.in/api/users",
74
+ "method": "post",
75
+ "requestData": {
76
+ "name": "morpheus",
77
+ "job": "leader"
78
+ },
79
+ "responseData": {
80
+ "name": "morpheus",
81
+ "job": "leader"
82
+ },
83
+ "statusCodes": [
84
+ 200,
85
+ 201
86
+ ],
87
+ "id": "fd520fd4-f32f-428b-a072-c2b2cffe3a3c",
88
+ "requestHeaders": {},
89
+ "responseHeaders": {},
90
+ "requestParams": {},
91
+ "responseParams": {},
92
+ "envsFromResponseData": []
93
+ },
94
+ {
95
+ "result": "PASS",
96
+ "resultDescription": "Opened URL.",
97
+ "action": "goTo",
98
+ "url": "https://www.google.com",
99
+ "id": "d6b47d3d-42db-45a7-8fde-3633adf30411"
100
+ },
101
+ {
102
+ "result": "PASS",
103
+ "resultDescription": "Found an element matching selector. Moved to element. Clicked element. Typed keys.",
104
+ "action": "find",
105
+ "selector": "[title=Search]",
106
+ "timeout": 10000,
107
+ "moveTo": true,
108
+ "click": true,
109
+ "typeKeys": {
110
+ "keys": [
111
+ "shorthair cat",
112
+ "$ENTER$"
113
+ ]
114
+ },
115
+ "id": "0d631a5b-6e96-4031-8d04-52d270f6e251"
116
+ }
117
+ ]
118
+ }
119
+ ],
120
+ "description": "This test includes nearly every property across all actions."
121
+ }
122
+ ]
123
+ }
124
+ ]
125
125
  }