haori 0.13.0 → 0.13.2

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 (307) hide show
  1. package/README.ja.md +1 -1
  2. package/README.md +1 -1
  3. package/dist/haori.cjs.js +10 -10
  4. package/dist/haori.es.js +191 -165
  5. package/dist/haori.iife.js +10 -10
  6. package/dist/index.d.ts +1 -1
  7. package/package.json +11 -3
  8. package/dist/haori.cjs.js.map +0 -1
  9. package/dist/haori.es.js.map +0 -1
  10. package/dist/haori.iife.js.map +0 -1
  11. package/dist/package.json +0 -70
  12. package/dist/src/builtins.d.ts +0 -100
  13. package/dist/src/builtins.d.ts.map +0 -1
  14. package/dist/src/builtins.js +0 -194
  15. package/dist/src/builtins.js.map +0 -1
  16. package/dist/src/core.d.ts +0 -505
  17. package/dist/src/core.d.ts.map +0 -1
  18. package/dist/src/core.js +0 -1817
  19. package/dist/src/core.js.map +0 -1
  20. package/dist/src/dev.d.ts +0 -35
  21. package/dist/src/dev.d.ts.map +0 -1
  22. package/dist/src/dev.js +0 -44
  23. package/dist/src/dev.js.map +0 -1
  24. package/dist/src/env.d.ts +0 -43
  25. package/dist/src/env.d.ts.map +0 -1
  26. package/dist/src/env.js +0 -108
  27. package/dist/src/env.js.map +0 -1
  28. package/dist/src/event.d.ts +0 -171
  29. package/dist/src/event.d.ts.map +0 -1
  30. package/dist/src/event.js +0 -235
  31. package/dist/src/event.js.map +0 -1
  32. package/dist/src/event_dispatcher.d.ts +0 -66
  33. package/dist/src/event_dispatcher.d.ts.map +0 -1
  34. package/dist/src/event_dispatcher.js +0 -167
  35. package/dist/src/event_dispatcher.js.map +0 -1
  36. package/dist/src/expression.d.ts +0 -260
  37. package/dist/src/expression.d.ts.map +0 -1
  38. package/dist/src/expression.js +0 -975
  39. package/dist/src/expression.js.map +0 -1
  40. package/dist/src/form.d.ts +0 -148
  41. package/dist/src/form.d.ts.map +0 -1
  42. package/dist/src/form.js +0 -428
  43. package/dist/src/form.js.map +0 -1
  44. package/dist/src/fragment.d.ts +0 -621
  45. package/dist/src/fragment.d.ts.map +0 -1
  46. package/dist/src/fragment.js +0 -1963
  47. package/dist/src/fragment.js.map +0 -1
  48. package/dist/src/haori.d.ts +0 -130
  49. package/dist/src/haori.d.ts.map +0 -1
  50. package/dist/src/haori.js +0 -215
  51. package/dist/src/haori.js.map +0 -1
  52. package/dist/src/import.d.ts +0 -19
  53. package/dist/src/import.d.ts.map +0 -1
  54. package/dist/src/import.js +0 -64
  55. package/dist/src/import.js.map +0 -1
  56. package/dist/src/index.d.ts +0 -27
  57. package/dist/src/index.d.ts.map +0 -1
  58. package/dist/src/index.js +0 -30
  59. package/dist/src/index.js.map +0 -1
  60. package/dist/src/intersect.d.ts +0 -28
  61. package/dist/src/intersect.d.ts.map +0 -1
  62. package/dist/src/intersect.js +0 -201
  63. package/dist/src/intersect.js.map +0 -1
  64. package/dist/src/log.d.ts +0 -32
  65. package/dist/src/log.d.ts.map +0 -1
  66. package/dist/src/log.js +0 -43
  67. package/dist/src/log.js.map +0 -1
  68. package/dist/src/observer.d.ts +0 -24
  69. package/dist/src/observer.d.ts.map +0 -1
  70. package/dist/src/observer.js +0 -131
  71. package/dist/src/observer.js.map +0 -1
  72. package/dist/src/procedure.d.ts +0 -447
  73. package/dist/src/procedure.d.ts.map +0 -1
  74. package/dist/src/procedure.js +0 -1921
  75. package/dist/src/procedure.js.map +0 -1
  76. package/dist/src/queue.d.ts +0 -35
  77. package/dist/src/queue.d.ts.map +0 -1
  78. package/dist/src/queue.js +0 -202
  79. package/dist/src/queue.js.map +0 -1
  80. package/dist/src/url.d.ts +0 -14
  81. package/dist/src/url.d.ts.map +0 -1
  82. package/dist/src/url.js +0 -22
  83. package/dist/src/url.js.map +0 -1
  84. package/dist/tests/bind-arg-own-binding.test.d.ts +0 -2
  85. package/dist/tests/bind-arg-own-binding.test.d.ts.map +0 -1
  86. package/dist/tests/bind-arg-own-binding.test.js +0 -63
  87. package/dist/tests/bind-arg-own-binding.test.js.map +0 -1
  88. package/dist/tests/bindcomplete-and-scope.test.d.ts +0 -2
  89. package/dist/tests/bindcomplete-and-scope.test.d.ts.map +0 -1
  90. package/dist/tests/bindcomplete-and-scope.test.js +0 -115
  91. package/dist/tests/bindcomplete-and-scope.test.js.map +0 -1
  92. package/dist/tests/builtins.test.d.ts +0 -2
  93. package/dist/tests/builtins.test.d.ts.map +0 -1
  94. package/dist/tests/builtins.test.js +0 -152
  95. package/dist/tests/builtins.test.js.map +0 -1
  96. package/dist/tests/click-attributes.test.d.ts +0 -2
  97. package/dist/tests/click-attributes.test.d.ts.map +0 -1
  98. package/dist/tests/click-attributes.test.js +0 -113
  99. package/dist/tests/click-attributes.test.js.map +0 -1
  100. package/dist/tests/click-no-disabled.test.d.ts +0 -2
  101. package/dist/tests/click-no-disabled.test.d.ts.map +0 -1
  102. package/dist/tests/click-no-disabled.test.js +0 -67
  103. package/dist/tests/click-no-disabled.test.js.map +0 -1
  104. package/dist/tests/core.test.d.ts +0 -5
  105. package/dist/tests/core.test.d.ts.map +0 -1
  106. package/dist/tests/core.test.js +0 -1056
  107. package/dist/tests/core.test.js.map +0 -1
  108. package/dist/tests/data-bind-arg-reeval.test.d.ts +0 -2
  109. package/dist/tests/data-bind-arg-reeval.test.d.ts.map +0 -1
  110. package/dist/tests/data-bind-arg-reeval.test.js +0 -119
  111. package/dist/tests/data-bind-arg-reeval.test.js.map +0 -1
  112. package/dist/tests/data-bind-merge.test.d.ts +0 -2
  113. package/dist/tests/data-bind-merge.test.d.ts.map +0 -1
  114. package/dist/tests/data-bind-merge.test.js +0 -86
  115. package/dist/tests/data-bind-merge.test.js.map +0 -1
  116. package/dist/tests/data-click-defer.test.d.ts +0 -2
  117. package/dist/tests/data-click-defer.test.d.ts.map +0 -1
  118. package/dist/tests/data-click-defer.test.js +0 -57
  119. package/dist/tests/data-click-defer.test.js.map +0 -1
  120. package/dist/tests/data-click-run.test.d.ts +0 -5
  121. package/dist/tests/data-click-run.test.d.ts.map +0 -1
  122. package/dist/tests/data-click-run.test.js +0 -109
  123. package/dist/tests/data-click-run.test.js.map +0 -1
  124. package/dist/tests/data-derive.test.d.ts +0 -2
  125. package/dist/tests/data-derive.test.d.ts.map +0 -1
  126. package/dist/tests/data-derive.test.js +0 -999
  127. package/dist/tests/data-derive.test.js.map +0 -1
  128. package/dist/tests/data-each-browserlike.test.d.ts +0 -2
  129. package/dist/tests/data-each-browserlike.test.d.ts.map +0 -1
  130. package/dist/tests/data-each-browserlike.test.js +0 -48
  131. package/dist/tests/data-each-browserlike.test.js.map +0 -1
  132. package/dist/tests/data-each-fragment-debug.test.d.ts +0 -2
  133. package/dist/tests/data-each-fragment-debug.test.d.ts.map +0 -1
  134. package/dist/tests/data-each-fragment-debug.test.js +0 -119
  135. package/dist/tests/data-each-fragment-debug.test.js.map +0 -1
  136. package/dist/tests/data-each-table.test.d.ts +0 -2
  137. package/dist/tests/data-each-table.test.d.ts.map +0 -1
  138. package/dist/tests/data-each-table.test.js +0 -131
  139. package/dist/tests/data-each-table.test.js.map +0 -1
  140. package/dist/tests/data-each-template-recovery.test.d.ts +0 -2
  141. package/dist/tests/data-each-template-recovery.test.d.ts.map +0 -1
  142. package/dist/tests/data-each-template-recovery.test.js +0 -87
  143. package/dist/tests/data-each-template-recovery.test.js.map +0 -1
  144. package/dist/tests/data-event-prevent.test.d.ts +0 -2
  145. package/dist/tests/data-event-prevent.test.d.ts.map +0 -1
  146. package/dist/tests/data-event-prevent.test.js +0 -76
  147. package/dist/tests/data-event-prevent.test.js.map +0 -1
  148. package/dist/tests/data-fetch-form-input-binding.test.d.ts +0 -2
  149. package/dist/tests/data-fetch-form-input-binding.test.d.ts.map +0 -1
  150. package/dist/tests/data-fetch-form-input-binding.test.js +0 -202
  151. package/dist/tests/data-fetch-form-input-binding.test.js.map +0 -1
  152. package/dist/tests/data-fetch-tbody-dom.test.d.ts +0 -2
  153. package/dist/tests/data-fetch-tbody-dom.test.d.ts.map +0 -1
  154. package/dist/tests/data-fetch-tbody-dom.test.js +0 -82
  155. package/dist/tests/data-fetch-tbody-dom.test.js.map +0 -1
  156. package/dist/tests/data-form-container.test.d.ts +0 -2
  157. package/dist/tests/data-form-container.test.d.ts.map +0 -1
  158. package/dist/tests/data-form-container.test.js +0 -88
  159. package/dist/tests/data-form-container.test.js.map +0 -1
  160. package/dist/tests/data-if-dev-diagnostics.test.d.ts +0 -2
  161. package/dist/tests/data-if-dev-diagnostics.test.d.ts.map +0 -1
  162. package/dist/tests/data-if-dev-diagnostics.test.js +0 -55
  163. package/dist/tests/data-if-dev-diagnostics.test.js.map +0 -1
  164. package/dist/tests/data-if-falsy.test.d.ts +0 -2
  165. package/dist/tests/data-if-falsy.test.d.ts.map +0 -1
  166. package/dist/tests/data-if-falsy.test.js +0 -73
  167. package/dist/tests/data-if-falsy.test.js.map +0 -1
  168. package/dist/tests/data-load-on-show.test.d.ts +0 -2
  169. package/dist/tests/data-load-on-show.test.d.ts.map +0 -1
  170. package/dist/tests/data-load-on-show.test.js +0 -98
  171. package/dist/tests/data-load-on-show.test.js.map +0 -1
  172. package/dist/tests/derive-each-render-wait.test.d.ts +0 -2
  173. package/dist/tests/derive-each-render-wait.test.d.ts.map +0 -1
  174. package/dist/tests/derive-each-render-wait.test.js +0 -90
  175. package/dist/tests/derive-each-render-wait.test.js.map +0 -1
  176. package/dist/tests/dev.test.d.ts +0 -2
  177. package/dist/tests/dev.test.d.ts.map +0 -1
  178. package/dist/tests/dev.test.js +0 -51
  179. package/dist/tests/dev.test.js.map +0 -1
  180. package/dist/tests/each-update-event.test.d.ts +0 -2
  181. package/dist/tests/each-update-event.test.d.ts.map +0 -1
  182. package/dist/tests/each-update-event.test.js +0 -83
  183. package/dist/tests/each-update-event.test.js.map +0 -1
  184. package/dist/tests/each_arg.test.d.ts +0 -2
  185. package/dist/tests/each_arg.test.d.ts.map +0 -1
  186. package/dist/tests/each_arg.test.js +0 -41
  187. package/dist/tests/each_arg.test.js.map +0 -1
  188. package/dist/tests/env.test.d.ts +0 -2
  189. package/dist/tests/env.test.d.ts.map +0 -1
  190. package/dist/tests/env.test.js +0 -124
  191. package/dist/tests/env.test.js.map +0 -1
  192. package/dist/tests/evaluation-profile.test.d.ts +0 -2
  193. package/dist/tests/evaluation-profile.test.d.ts.map +0 -1
  194. package/dist/tests/evaluation-profile.test.js +0 -92
  195. package/dist/tests/evaluation-profile.test.js.map +0 -1
  196. package/dist/tests/event.test.d.ts +0 -2
  197. package/dist/tests/event.test.d.ts.map +0 -1
  198. package/dist/tests/event.test.js +0 -300
  199. package/dist/tests/event.test.js.map +0 -1
  200. package/dist/tests/expression-disallowed-keyword-hint.test.d.ts +0 -2
  201. package/dist/tests/expression-disallowed-keyword-hint.test.d.ts.map +0 -1
  202. package/dist/tests/expression-disallowed-keyword-hint.test.js +0 -45
  203. package/dist/tests/expression-disallowed-keyword-hint.test.js.map +0 -1
  204. package/dist/tests/expression-forbidden-hint.test.d.ts +0 -2
  205. package/dist/tests/expression-forbidden-hint.test.d.ts.map +0 -1
  206. package/dist/tests/expression-forbidden-hint.test.js +0 -37
  207. package/dist/tests/expression-forbidden-hint.test.js.map +0 -1
  208. package/dist/tests/expression.test.d.ts +0 -2
  209. package/dist/tests/expression.test.d.ts.map +0 -1
  210. package/dist/tests/expression.test.js +0 -482
  211. package/dist/tests/expression.test.js.map +0 -1
  212. package/dist/tests/fetch-and-procedure-scenarios.test.d.ts +0 -2
  213. package/dist/tests/fetch-and-procedure-scenarios.test.d.ts.map +0 -1
  214. package/dist/tests/fetch-and-procedure-scenarios.test.js +0 -195
  215. package/dist/tests/fetch-and-procedure-scenarios.test.js.map +0 -1
  216. package/dist/tests/form-number-type.test.d.ts +0 -2
  217. package/dist/tests/form-number-type.test.d.ts.map +0 -1
  218. package/dist/tests/form-number-type.test.js +0 -83
  219. package/dist/tests/form-number-type.test.js.map +0 -1
  220. package/dist/tests/form.test.d.ts +0 -2
  221. package/dist/tests/form.test.d.ts.map +0 -1
  222. package/dist/tests/form.test.js +0 -636
  223. package/dist/tests/form.test.js.map +0 -1
  224. package/dist/tests/fragment.test.d.ts +0 -2
  225. package/dist/tests/fragment.test.d.ts.map +0 -1
  226. package/dist/tests/fragment.test.js +0 -284
  227. package/dist/tests/fragment.test.js.map +0 -1
  228. package/dist/tests/haori.test.d.ts +0 -2
  229. package/dist/tests/haori.test.d.ts.map +0 -1
  230. package/dist/tests/haori.test.js +0 -149
  231. package/dist/tests/haori.test.js.map +0 -1
  232. package/dist/tests/helpers/async.d.ts +0 -20
  233. package/dist/tests/helpers/async.d.ts.map +0 -1
  234. package/dist/tests/helpers/async.js +0 -35
  235. package/dist/tests/helpers/async.js.map +0 -1
  236. package/dist/tests/import.test.d.ts +0 -2
  237. package/dist/tests/import.test.d.ts.map +0 -1
  238. package/dist/tests/import.test.js +0 -148
  239. package/dist/tests/import.test.js.map +0 -1
  240. package/dist/tests/intersect.test.d.ts +0 -2
  241. package/dist/tests/intersect.test.d.ts.map +0 -1
  242. package/dist/tests/intersect.test.js +0 -173
  243. package/dist/tests/intersect.test.js.map +0 -1
  244. package/dist/tests/log.test.d.ts +0 -2
  245. package/dist/tests/log.test.d.ts.map +0 -1
  246. package/dist/tests/log.test.js +0 -58
  247. package/dist/tests/log.test.js.map +0 -1
  248. package/dist/tests/observer.test.d.ts +0 -2
  249. package/dist/tests/observer.test.d.ts.map +0 -1
  250. package/dist/tests/observer.test.js +0 -64
  251. package/dist/tests/observer.test.js.map +0 -1
  252. package/dist/tests/placeholder-resolution.test.d.ts +0 -2
  253. package/dist/tests/placeholder-resolution.test.d.ts.map +0 -1
  254. package/dist/tests/placeholder-resolution.test.js +0 -463
  255. package/dist/tests/placeholder-resolution.test.js.map +0 -1
  256. package/dist/tests/procedure-action-operations.test.d.ts +0 -2
  257. package/dist/tests/procedure-action-operations.test.d.ts.map +0 -1
  258. package/dist/tests/procedure-action-operations.test.js +0 -1140
  259. package/dist/tests/procedure-action-operations.test.js.map +0 -1
  260. package/dist/tests/procedure-bind-append.test.d.ts +0 -2
  261. package/dist/tests/procedure-bind-append.test.d.ts.map +0 -1
  262. package/dist/tests/procedure-bind-append.test.js +0 -80
  263. package/dist/tests/procedure-bind-append.test.js.map +0 -1
  264. package/dist/tests/procedure-fetch-options.test.d.ts +0 -2
  265. package/dist/tests/procedure-fetch-options.test.d.ts.map +0 -1
  266. package/dist/tests/procedure-fetch-options.test.js +0 -255
  267. package/dist/tests/procedure-fetch-options.test.js.map +0 -1
  268. package/dist/tests/procedure.test.d.ts +0 -2
  269. package/dist/tests/procedure.test.d.ts.map +0 -1
  270. package/dist/tests/procedure.test.js +0 -137
  271. package/dist/tests/procedure.test.js.map +0 -1
  272. package/dist/tests/procedure_events.test.d.ts +0 -7
  273. package/dist/tests/procedure_events.test.d.ts.map +0 -1
  274. package/dist/tests/procedure_events.test.js +0 -261
  275. package/dist/tests/procedure_events.test.js.map +0 -1
  276. package/dist/tests/render-wait.test.d.ts +0 -2
  277. package/dist/tests/render-wait.test.d.ts.map +0 -1
  278. package/dist/tests/render-wait.test.js +0 -68
  279. package/dist/tests/render-wait.test.js.map +0 -1
  280. package/dist/tests/reset_each.test.d.ts +0 -2
  281. package/dist/tests/reset_each.test.d.ts.map +0 -1
  282. package/dist/tests/reset_each.test.js +0 -215
  283. package/dist/tests/reset_each.test.js.map +0 -1
  284. package/dist/tests/row-move.test.d.ts +0 -2
  285. package/dist/tests/row-move.test.d.ts.map +0 -1
  286. package/dist/tests/row-move.test.js +0 -220
  287. package/dist/tests/row-move.test.js.map +0 -1
  288. package/dist/tests/row-operations.test.d.ts +0 -2
  289. package/dist/tests/row-operations.test.d.ts.map +0 -1
  290. package/dist/tests/row-operations.test.js +0 -259
  291. package/dist/tests/row-operations.test.js.map +0 -1
  292. package/dist/tests/scheduled-evaluate-wait.test.d.ts +0 -2
  293. package/dist/tests/scheduled-evaluate-wait.test.d.ts.map +0 -1
  294. package/dist/tests/scheduled-evaluate-wait.test.js +0 -68
  295. package/dist/tests/scheduled-evaluate-wait.test.js.map +0 -1
  296. package/dist/tests/url.test.d.ts +0 -2
  297. package/dist/tests/url.test.d.ts.map +0 -1
  298. package/dist/tests/url.test.js +0 -150
  299. package/dist/tests/url.test.js.map +0 -1
  300. package/dist/vite.config.d.ts +0 -3
  301. package/dist/vite.config.d.ts.map +0 -1
  302. package/dist/vite.config.js +0 -28
  303. package/dist/vite.config.js.map +0 -1
  304. package/dist/vitest.config.d.ts +0 -3
  305. package/dist/vitest.config.d.ts.map +0 -1
  306. package/dist/vitest.config.js +0 -19
  307. package/dist/vitest.config.js.map +0 -1
@@ -1,148 +0,0 @@
1
- /* @vitest-environment jsdom */
2
- /**
3
- * @fileoverview Import(HTMLインポート機能)のテスト
4
- */
5
- import { describe, it, expect, beforeEach, afterEach, vi } from 'vitest';
6
- import { Import } from '../src/import';
7
- describe('Import', () => {
8
- beforeEach(() => {
9
- vi.resetAllMocks();
10
- });
11
- afterEach(() => {
12
- vi.restoreAllMocks();
13
- });
14
- describe('load', () => {
15
- it('HTMLからbodyの内容のみを抽出する', async () => {
16
- const html = `
17
- <!DOCTYPE html>
18
- <html>
19
- <head><title>Test</title></head>
20
- <body>
21
- <h1>Hello</h1>
22
- <p>World</p>
23
- </body>
24
- </html>
25
- `;
26
- vi.spyOn(globalThis, 'fetch').mockResolvedValue({
27
- ok: true,
28
- text: () => Promise.resolve(html),
29
- });
30
- const result = await Import.load('https://example.com/test.html');
31
- expect(result).toContain('<h1>Hello</h1>');
32
- expect(result).toContain('<p>World</p>');
33
- expect(result).not.toContain('<title>');
34
- expect(result).not.toContain('<html>');
35
- });
36
- it('bodyタグがない場合はテキスト全体を返す', async () => {
37
- const text = '<div>Content without body</div>';
38
- vi.spyOn(globalThis, 'fetch').mockResolvedValue({
39
- ok: true,
40
- text: () => Promise.resolve(text),
41
- });
42
- const result = await Import.load('https://example.com/test.html');
43
- // DOMParserはbodyを自動生成するため、コンテンツは含まれる
44
- expect(result).toContain('Content without body');
45
- });
46
- it('fetchオプションを渡せる', async () => {
47
- const html = '<html><body><p>Test</p></body></html>';
48
- const fetchSpy = vi.spyOn(globalThis, 'fetch').mockResolvedValue({
49
- ok: true,
50
- text: () => Promise.resolve(html),
51
- });
52
- await Import.load('https://example.com/test.html', {
53
- method: 'POST',
54
- headers: { 'Content-Type': 'application/json' },
55
- });
56
- expect(fetchSpy).toHaveBeenCalledWith('https://example.com/test.html', {
57
- method: 'POST',
58
- headers: { 'Content-Type': 'application/json' },
59
- });
60
- });
61
- it('HTTPエラー時は例外を投げる', async () => {
62
- vi.spyOn(globalThis, 'fetch').mockResolvedValue({
63
- ok: false,
64
- status: 404,
65
- statusText: 'Not Found',
66
- });
67
- await expect(Import.load('https://example.com/not-found.html')).rejects.toThrow('Failed to load');
68
- });
69
- it('ネットワークエラー時は例外を投げる', async () => {
70
- vi.spyOn(globalThis, 'fetch').mockRejectedValue(new Error('Network error'));
71
- await expect(Import.load('https://example.com/test.html')).rejects.toThrow('Failed to fetch');
72
- });
73
- it('レスポンステキスト読み取りエラー時は例外を投げる', async () => {
74
- vi.spyOn(globalThis, 'fetch').mockResolvedValue({
75
- ok: true,
76
- text: () => Promise.reject(new Error('Read error')),
77
- });
78
- await expect(Import.load('https://example.com/test.html')).rejects.toThrow('Failed to read response');
79
- });
80
- it('複数の子要素を持つbodyを正しく抽出する', async () => {
81
- const html = `
82
- <html>
83
- <body>
84
- <header>Header</header>
85
- <main>Main Content</main>
86
- <footer>Footer</footer>
87
- </body>
88
- </html>
89
- `;
90
- vi.spyOn(globalThis, 'fetch').mockResolvedValue({
91
- ok: true,
92
- text: () => Promise.resolve(html),
93
- });
94
- const result = await Import.load('https://example.com/test.html');
95
- expect(result).toContain('<header>Header</header>');
96
- expect(result).toContain('<main>Main Content</main>');
97
- expect(result).toContain('<footer>Footer</footer>');
98
- });
99
- it('空のbodyを正しく処理する', async () => {
100
- const html = '<html><body></body></html>';
101
- vi.spyOn(globalThis, 'fetch').mockResolvedValue({
102
- ok: true,
103
- text: () => Promise.resolve(html),
104
- });
105
- const result = await Import.load('https://example.com/test.html');
106
- expect(result).toBe('');
107
- });
108
- it('body内のスクリプトタグも含める', async () => {
109
- const html = `
110
- <html>
111
- <body>
112
- <p>Content</p>
113
- <script>console.log('test');</script>
114
- </body>
115
- </html>
116
- `;
117
- vi.spyOn(globalThis, 'fetch').mockResolvedValue({
118
- ok: true,
119
- text: () => Promise.resolve(html),
120
- });
121
- const result = await Import.load('https://example.com/test.html');
122
- expect(result).toContain('<p>Content</p>');
123
- // scriptタグはDOMParserによって処理される
124
- });
125
- it('ネストされた要素を正しく抽出する', async () => {
126
- const html = `
127
- <html>
128
- <body>
129
- <div class="outer">
130
- <div class="inner">
131
- <span>Nested content</span>
132
- </div>
133
- </div>
134
- </body>
135
- </html>
136
- `;
137
- vi.spyOn(globalThis, 'fetch').mockResolvedValue({
138
- ok: true,
139
- text: () => Promise.resolve(html),
140
- });
141
- const result = await Import.load('https://example.com/test.html');
142
- expect(result).toContain('class="outer"');
143
- expect(result).toContain('class="inner"');
144
- expect(result).toContain('Nested content');
145
- });
146
- });
147
- });
148
- //# sourceMappingURL=import.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"import.test.js","sourceRoot":"","sources":["../../tests/import.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=intersect.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"intersect.test.d.ts","sourceRoot":"","sources":["../../tests/intersect.test.ts"],"names":[],"mappings":""}
@@ -1,173 +0,0 @@
1
- /* @vitest-environment jsdom */
2
- import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
3
- import Core from '../src/core';
4
- import Fragment from '../src/fragment';
5
- import IntersectObserver from '../src/intersect';
6
- import { waitForCondition } from './helpers/async';
7
- class MockIntersectionObserver {
8
- constructor(callback, options = {}) {
9
- this.observed = new Set();
10
- this.callback = callback;
11
- this.root = options.root ?? null;
12
- this.rootMargin = options.rootMargin ?? '0px';
13
- this.thresholds = Array.isArray(options.threshold)
14
- ? options.threshold
15
- : [options.threshold ?? 0];
16
- MockIntersectionObserver.instances.push(this);
17
- }
18
- observe(target) {
19
- this.observed.add(target);
20
- }
21
- unobserve(target) {
22
- this.observed.delete(target);
23
- }
24
- disconnect() {
25
- this.observed.clear();
26
- }
27
- trigger(target, isIntersecting) {
28
- if (!this.observed.has(target)) {
29
- return;
30
- }
31
- this.callback([
32
- {
33
- target,
34
- isIntersecting,
35
- intersectionRatio: isIntersecting ? 1 : 0,
36
- boundingClientRect: target.getBoundingClientRect(),
37
- intersectionRect: target.getBoundingClientRect(),
38
- rootBounds: null,
39
- time: 0,
40
- },
41
- ], this);
42
- }
43
- }
44
- MockIntersectionObserver.instances = [];
45
- describe('data-intersect-*', () => {
46
- beforeEach(() => {
47
- MockIntersectionObserver.instances = [];
48
- vi.stubGlobal('IntersectionObserver', MockIntersectionObserver);
49
- });
50
- afterEach(() => {
51
- IntersectObserver.disconnectAll();
52
- document.body.innerHTML = '';
53
- vi.unstubAllGlobals();
54
- vi.restoreAllMocks();
55
- });
56
- it('registers observer with root, root-margin, and threshold options', async () => {
57
- const root = document.createElement('div');
58
- root.className = 'panel';
59
- const sentinel = document.createElement('div');
60
- sentinel.setAttribute('data-intersect-fetch', '/api/posts');
61
- sentinel.setAttribute('data-intersect-root', '.panel');
62
- sentinel.setAttribute('data-intersect-root-margin', '0px 0px 300px 0px');
63
- sentinel.setAttribute('data-intersect-threshold', '0.5');
64
- root.appendChild(sentinel);
65
- document.body.appendChild(root);
66
- await Core.scan(root);
67
- IntersectObserver.syncTree(root);
68
- expect(MockIntersectionObserver.instances).toHaveLength(1);
69
- const instance = MockIntersectionObserver.instances[0];
70
- expect(instance.root).toBe(root);
71
- expect(instance.rootMargin).toBe('0px 0px 300px 0px');
72
- expect(instance.thresholds).toEqual([0.5]);
73
- expect(instance.observed.has(sentinel)).toBe(true);
74
- });
75
- it('runs intersect procedure and appends configured arrays when intersecting', async () => {
76
- const feed = document.createElement('div');
77
- feed.id = 'feed';
78
- feed.setAttribute('data-bind', JSON.stringify({
79
- items: [{ id: 1, title: 'old' }],
80
- cursor: 'a',
81
- hasMore: true,
82
- }));
83
- const sentinel = document.createElement('div');
84
- sentinel.setAttribute('data-intersect-fetch', 'https://example.com/posts');
85
- sentinel.setAttribute('data-intersect-bind', '#feed');
86
- sentinel.setAttribute('data-intersect-bind-params', 'items&cursor&hasMore');
87
- sentinel.setAttribute('data-intersect-bind-append', 'items');
88
- document.body.append(feed, sentinel);
89
- await Core.scan(feed);
90
- await Core.scan(sentinel);
91
- vi.spyOn(globalThis, 'fetch').mockResolvedValue(new Response(JSON.stringify({
92
- items: [{ id: 2, title: 'new' }],
93
- cursor: 'b',
94
- hasMore: false,
95
- }), { headers: { 'Content-Type': 'application/json' } }));
96
- IntersectObserver.syncElement(sentinel);
97
- expect(MockIntersectionObserver.instances).toHaveLength(1);
98
- const instance = MockIntersectionObserver.instances[0];
99
- instance.trigger(sentinel, true);
100
- const feedFragment = Fragment.get(feed);
101
- await waitForCondition(() => feedFragment.getRawBindingData()?.cursor === 'b', { description: 'intersect binding update' });
102
- expect(feedFragment.getRawBindingData()).toEqual({
103
- items: [
104
- { id: 1, title: 'old' },
105
- { id: 2, title: 'new' },
106
- ],
107
- cursor: 'b',
108
- hasMore: false,
109
- });
110
- });
111
- it('does not run while disabled is truthy', async () => {
112
- const sentinel = document.createElement('div');
113
- sentinel.setAttribute('data-intersect-fetch', 'https://example.com/posts');
114
- sentinel.setAttribute('data-intersect-disabled', 'true');
115
- document.body.appendChild(sentinel);
116
- await Core.scan(sentinel);
117
- const fetchSpy = vi
118
- .spyOn(globalThis, 'fetch')
119
- .mockResolvedValue(new Response('{}', {
120
- headers: { 'Content-Type': 'application/json' },
121
- }));
122
- IntersectObserver.syncElement(sentinel);
123
- expect(MockIntersectionObserver.instances).toHaveLength(1);
124
- MockIntersectionObserver.instances[0].trigger(sentinel, true);
125
- await Promise.resolve();
126
- expect(fetchSpy).not.toHaveBeenCalled();
127
- });
128
- it('disconnects after the first successful run when once is set', async () => {
129
- const sentinel = document.createElement('div');
130
- sentinel.setAttribute('data-intersect-fetch', 'https://example.com/posts');
131
- sentinel.setAttribute('data-intersect-once', '');
132
- document.body.appendChild(sentinel);
133
- await Core.scan(sentinel);
134
- const fetchSpy = vi
135
- .spyOn(globalThis, 'fetch')
136
- .mockResolvedValue(new Response('{}', {
137
- headers: { 'Content-Type': 'application/json' },
138
- }));
139
- IntersectObserver.syncElement(sentinel);
140
- expect(MockIntersectionObserver.instances).toHaveLength(1);
141
- const instance = MockIntersectionObserver.instances[0];
142
- instance.trigger(sentinel, true);
143
- await waitForCondition(() => fetchSpy.mock.calls.length === 1, {
144
- description: 'first intersect fetch',
145
- });
146
- await waitForCondition(() => !instance.observed.has(sentinel), {
147
- description: 'observer disconnect after once',
148
- });
149
- instance.trigger(sentinel, true);
150
- await Promise.resolve();
151
- expect(fetchSpy).toHaveBeenCalledTimes(1);
152
- });
153
- it('keeps observing when once is set but the intersect run is stopped before fetch', async () => {
154
- const sentinel = document.createElement('div');
155
- sentinel.setAttribute('data-intersect-fetch', 'https://example.com/posts');
156
- sentinel.setAttribute('data-intersect-before-run', 'return false;');
157
- sentinel.setAttribute('data-intersect-once', '');
158
- document.body.appendChild(sentinel);
159
- await Core.scan(sentinel);
160
- const fetchSpy = vi.spyOn(globalThis, 'fetch').mockResolvedValue(new Response('{}', {
161
- headers: { 'Content-Type': 'application/json' },
162
- }));
163
- IntersectObserver.syncElement(sentinel);
164
- expect(MockIntersectionObserver.instances).toHaveLength(1);
165
- const instance = MockIntersectionObserver.instances[0];
166
- instance.trigger(sentinel, true);
167
- await Promise.resolve();
168
- await Promise.resolve();
169
- expect(fetchSpy).not.toHaveBeenCalled();
170
- expect(instance.observed.has(sentinel)).toBe(true);
171
- });
172
- });
173
- //# sourceMappingURL=intersect.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"intersect.test.js","sourceRoot":"","sources":["../../tests/intersect.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=log.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"log.test.d.ts","sourceRoot":"","sources":["../../tests/log.test.ts"],"names":[],"mappings":""}
@@ -1,58 +0,0 @@
1
- import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
2
- // devモジュールをモック
3
- vi.mock('../src/dev');
4
- import Log from '../src/log';
5
- import Dev from '../src/dev';
6
- describe('ログ機能', () => {
7
- beforeEach(() => {
8
- vi.clearAllMocks();
9
- vi.mocked(Dev.isEnabled).mockReturnValue(true);
10
- });
11
- afterEach(() => {
12
- vi.restoreAllMocks();
13
- });
14
- describe('info', () => {
15
- it('開発モードでconsole.logが呼ばれる', () => {
16
- const consoleSpy = vi.spyOn(console, 'log').mockImplementation(() => { });
17
- Log.info('test info', 'arg1', 'arg2');
18
- expect(consoleSpy).toHaveBeenCalledWith('test info', 'arg1', 'arg2');
19
- });
20
- it('開発モードが無効の時はconsole.logが呼ばれない', () => {
21
- const consoleSpy = vi.spyOn(console, 'log').mockImplementation(() => { });
22
- vi.mocked(Dev.isEnabled).mockReturnValue(false);
23
- Log.info('test info', 'arg1', 'arg2');
24
- expect(consoleSpy).not.toHaveBeenCalled();
25
- });
26
- });
27
- describe('warn', () => {
28
- it('開発モードでconsole.warnが呼ばれる', () => {
29
- const consoleSpy = vi.spyOn(console, 'warn').mockImplementation(() => { });
30
- Log.warn('test warning', 'arg1', 'arg2');
31
- expect(consoleSpy).toHaveBeenCalledWith('test warning', 'arg1', 'arg2');
32
- });
33
- it('開発モードが無効の時はconsole.warnが呼ばれない', () => {
34
- const consoleSpy = vi.spyOn(console, 'warn').mockImplementation(() => { });
35
- vi.mocked(Dev.isEnabled).mockReturnValue(false);
36
- Log.warn('test warning', 'arg1', 'arg2');
37
- expect(consoleSpy).not.toHaveBeenCalled();
38
- });
39
- });
40
- describe('error', () => {
41
- it('モードに関係なくconsole.errorが呼ばれる(開発モード有効)', () => {
42
- const consoleSpy = vi
43
- .spyOn(console, 'error')
44
- .mockImplementation(() => { });
45
- Log.error('test error', 'arg1', 'arg2');
46
- expect(consoleSpy).toHaveBeenCalledWith('test error', 'arg1', 'arg2');
47
- });
48
- it('モードに関係なくconsole.errorが呼ばれる(開発モード無効)', () => {
49
- const consoleSpy = vi
50
- .spyOn(console, 'error')
51
- .mockImplementation(() => { });
52
- vi.mocked(Dev.isEnabled).mockReturnValue(false);
53
- Log.error('test error', 'arg1', 'arg2');
54
- expect(consoleSpy).toHaveBeenCalledWith('test error', 'arg1', 'arg2');
55
- });
56
- });
57
- });
58
- //# sourceMappingURL=log.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"log.test.js","sourceRoot":"","sources":["../../tests/log.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=observer.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"observer.test.d.ts","sourceRoot":"","sources":["../../tests/observer.test.ts"],"names":[],"mappings":""}
@@ -1,64 +0,0 @@
1
- /* @vitest-environment jsdom */
2
- /**
3
- * @fileoverview Observer の data-haori-ready 属性付与のテスト
4
- */
5
- import { describe, it, beforeEach, afterEach, expect, vi } from 'vitest';
6
- import { Observer } from '../src/observer';
7
- import { waitForDomSettled } from './helpers/async';
8
- function resetObserver() {
9
- Observer._initialized = false;
10
- document.body.removeAttribute('data-haori-ready');
11
- }
12
- describe('Observer - data-haori-ready', () => {
13
- beforeEach(() => {
14
- resetObserver();
15
- });
16
- afterEach(() => {
17
- vi.restoreAllMocks();
18
- resetObserver();
19
- });
20
- it('初期化完了後に document.body に data-haori-ready 属性が付与される', async () => {
21
- expect(document.body.hasAttribute('data-haori-ready')).toBe(false);
22
- await Observer.init();
23
- expect(document.body.hasAttribute('data-haori-ready')).toBe(true);
24
- });
25
- it('data-haori-ready の属性値は空文字列である', async () => {
26
- await Observer.init();
27
- expect(document.body.getAttribute('data-haori-ready')).toBe('');
28
- });
29
- it('init() を二重に呼び出しても初回のみ属性が付与される', async () => {
30
- await Observer.init();
31
- expect(document.body.hasAttribute('data-haori-ready')).toBe(true);
32
- document.body.removeAttribute('data-haori-ready');
33
- await Observer.init(); // _initialized が true のため何もしない
34
- expect(document.body.hasAttribute('data-haori-ready')).toBe(false);
35
- });
36
- it('data-fetch を持つ要素のフェッチ完了後に data-haori-ready が付与される', async () => {
37
- vi.spyOn(globalThis, 'fetch').mockResolvedValue(new Response(JSON.stringify({ name: 'テスト' }), {
38
- headers: { 'Content-Type': 'application/json' },
39
- }));
40
- const el = document.createElement('div');
41
- el.setAttribute('data-fetch', 'http://example.test/api');
42
- document.body.appendChild(el);
43
- await Observer.init();
44
- await waitForDomSettled();
45
- expect(document.body.hasAttribute('data-haori-ready')).toBe(true);
46
- el.remove();
47
- });
48
- it('Observer 起動後に data-import で取り込んだ HTML 内の Haori 属性が初期化される', async () => {
49
- vi.spyOn(globalThis, 'fetch').mockResolvedValue({
50
- ok: true,
51
- text: () => Promise.resolve('<div data-bind=\'{"greeting":"こんにちは"}\'>{{greeting}}</div>'),
52
- });
53
- await Observer.init();
54
- const container = document.createElement('div');
55
- container.setAttribute('data-import', 'http://example.test/partial.html');
56
- document.body.appendChild(container);
57
- await waitForDomSettled();
58
- const imported = container.querySelector('[data-bind]');
59
- expect(imported).not.toBeNull();
60
- expect(imported.textContent?.trim()).toBe('こんにちは');
61
- container.remove();
62
- });
63
- });
64
- //# sourceMappingURL=observer.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"observer.test.js","sourceRoot":"","sources":["../../tests/observer.test.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B;;GAEG;AACH,OAAO,EAAC,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAC,MAAM,QAAQ,CAAC;AACvE,OAAO,EAAC,QAAQ,EAAC,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAC,iBAAiB,EAAC,MAAM,iBAAiB,CAAC;AAIlD,SAAS,aAAa;IACnB,QAAuC,CAAC,YAAY,GAAG,KAAK,CAAC;IAC9D,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,CAAC;AACpD,CAAC;AAED,QAAQ,CAAC,6BAA6B,EAAE,GAAG,EAAE;IAC3C,UAAU,CAAC,GAAG,EAAE;QACd,aAAa,EAAE,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,EAAE,CAAC,eAAe,EAAE,CAAC;QACrB,aAAa,EAAE,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;QACjE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnE,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACtB,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+BAA+B,EAAE,KAAK,IAAI,EAAE;QAC7C,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACtB,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+BAA+B,EAAE,KAAK,IAAI,EAAE;QAC7C,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACtB,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAElE,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,CAAC;QAClD,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,+BAA+B;QACtD,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;QACjE,EAAE,CAAC,KAAK,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,iBAAiB,CAC7C,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,EAAC,IAAI,EAAE,KAAK,EAAC,CAAC,EAAE;YAC1C,OAAO,EAAE,EAAC,cAAc,EAAE,kBAAkB,EAAC;SAC9C,CAAC,CACH,CAAC;QAEF,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACzC,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,yBAAyB,CAAC,CAAC;QACzD,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAE9B,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACtB,MAAM,iBAAiB,EAAE,CAAC;QAE1B,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAElE,EAAE,CAAC,MAAM,EAAE,CAAC;IACd,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0DAA0D,EAAE,KAAK,IAAI,EAAE;QACxE,EAAE,CAAC,KAAK,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,iBAAiB,CAAC;YAC9C,EAAE,EAAE,IAAI;YACR,IAAI,EAAE,GAAG,EAAE,CACT,OAAO,CAAC,OAAO,CACb,4DAA4D,CAC7D;SACQ,CAAC,CAAC;QAEf,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QAEtB,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAChD,SAAS,CAAC,YAAY,CAAC,aAAa,EAAE,kCAAkC,CAAC,CAAC;QAC1E,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QAErC,MAAM,iBAAiB,EAAE,CAAC;QAE1B,MAAM,QAAQ,GAAG,SAAS,CAAC,aAAa,CAAC,aAAa,CAAgB,CAAC;QACvE,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QAChC,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEnD,SAAS,CAAC,MAAM,EAAE,CAAC;IACrB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=placeholder-resolution.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"placeholder-resolution.test.d.ts","sourceRoot":"","sources":["../../tests/placeholder-resolution.test.ts"],"names":[],"mappings":""}