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,463 +0,0 @@
1
- import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
2
- import Core from '../src/core';
3
- import { waitForDomSettled } from './helpers/async';
4
- describe('プレースホルダ解決規則', () => {
5
- let container;
6
- let originalLocation;
7
- const mockJsonFetch = () => vi.spyOn(globalThis, 'fetch').mockResolvedValue(new Response(JSON.stringify({ ok: true }), {
8
- headers: { 'Content-Type': 'application/json' },
9
- }));
10
- const mockHtmlFetch = () => vi.spyOn(globalThis, 'fetch').mockResolvedValue(new Response('<div>loaded</div>', {
11
- headers: { 'Content-Type': 'text/html' },
12
- }));
13
- const setWindowSearch = (search) => {
14
- Object.defineProperty(window, 'location', {
15
- value: { ...originalLocation, search },
16
- writable: true,
17
- });
18
- };
19
- beforeEach(() => {
20
- container = document.createElement('div');
21
- document.body.appendChild(container);
22
- originalLocation = window.location;
23
- });
24
- afterEach(() => {
25
- document.body.removeChild(container);
26
- Object.defineProperty(window, 'location', {
27
- value: originalLocation,
28
- writable: true,
29
- });
30
- vi.restoreAllMocks();
31
- });
32
- describe('副作用属性', () => {
33
- it('data-fetch の単体プレースホルダは未解決参照なら実行しない', async () => {
34
- const fetchSpy = mockJsonFetch();
35
- container.innerHTML = '<div data-fetch="{{missingUrl}}"></div>';
36
- const element = container.querySelector('div');
37
- await Core.scan(element);
38
- await waitForDomSettled();
39
- expect(fetchSpy).not.toHaveBeenCalled();
40
- });
41
- it.each([
42
- ['false', '{{false}}'],
43
- ['null', '{{null}}'],
44
- ['undefined', '{{undefined}}'],
45
- ['空文字', '{{\'\'}}'],
46
- ])('data-fetch の単体プレースホルダは %s なら実行しない', async (_label, expression) => {
47
- const fetchSpy = mockJsonFetch();
48
- container.innerHTML = '<div data-fetch="' + expression + '"></div>';
49
- const element = container.querySelector('div');
50
- await Core.scan(element);
51
- await waitForDomSettled();
52
- expect(fetchSpy).not.toHaveBeenCalled();
53
- });
54
- it('data-fetch の単体プレースホルダは空でない文字列なら実行する', async () => {
55
- const fetchSpy = mockJsonFetch();
56
- container.innerHTML = '<div data-fetch="{{\'/api/items\'}}"></div>';
57
- const element = container.querySelector('div');
58
- await Core.scan(element);
59
- await waitForDomSettled();
60
- expect(fetchSpy).toHaveBeenCalledTimes(1);
61
- });
62
- it('data-fetch の文字列埋め込みは未解決参照があれば実行しない', async () => {
63
- const fetchSpy = mockJsonFetch();
64
- container.innerHTML = '<div data-bind="base=users" data-fetch="/api/{{base}}/{{missingId}}"></div>';
65
- const element = container.querySelector('div');
66
- await Core.scan(element);
67
- await waitForDomSettled();
68
- expect(fetchSpy).not.toHaveBeenCalled();
69
- });
70
- it('data-fetch の文字列埋め込みはすべて解決していれば実行する', async () => {
71
- const fetchSpy = mockJsonFetch();
72
- container.innerHTML = `
73
- <div data-bind='{"base":"users","id":"42"}' data-fetch='/api/{{base}}/{{id}}'></div>
74
- `;
75
- const element = container.querySelector('div');
76
- await Core.scan(element);
77
- await waitForDomSettled();
78
- expect(fetchSpy).toHaveBeenCalledTimes(1);
79
- });
80
- it('data-import の単体プレースホルダは未解決参照なら実行しない', async () => {
81
- const fetchSpy = mockHtmlFetch();
82
- container.innerHTML = '<div data-import="{{missingImportUrl}}"></div>';
83
- const element = container.querySelector('div');
84
- await Core.scan(element);
85
- await waitForDomSettled();
86
- expect(fetchSpy).not.toHaveBeenCalled();
87
- });
88
- it.each([
89
- ['false', '{{false}}'],
90
- ['null', '{{null}}'],
91
- ['undefined', '{{undefined}}'],
92
- ['空文字', '{{\'\'}}'],
93
- ])('data-import の単体プレースホルダは %s なら実行しない', async (_label, expression) => {
94
- const fetchSpy = mockHtmlFetch();
95
- container.innerHTML = '<div data-import="' + expression + '"></div>';
96
- const element = container.querySelector('div');
97
- await Core.scan(element);
98
- await waitForDomSettled();
99
- expect(fetchSpy).not.toHaveBeenCalled();
100
- });
101
- it('data-import の単体プレースホルダは空でない文字列なら実行する', async () => {
102
- const fetchSpy = mockHtmlFetch();
103
- container.innerHTML = '<div data-import="{{\'/parts/header.html\'}}"></div>';
104
- const element = container.querySelector('div');
105
- await Core.scan(element);
106
- await waitForDomSettled();
107
- expect(fetchSpy).toHaveBeenCalledTimes(1);
108
- });
109
- it('data-import の文字列埋め込みは未解決参照があれば実行しない', async () => {
110
- const fetchSpy = mockHtmlFetch();
111
- container.innerHTML = '<div data-bind="section=docs" data-import="/{{section}}/{{missingPage}}.html"></div>';
112
- const element = container.querySelector('div');
113
- await Core.scan(element);
114
- await waitForDomSettled();
115
- expect(fetchSpy).not.toHaveBeenCalled();
116
- });
117
- it('data-import の文字列埋め込みはすべて解決していれば実行する', async () => {
118
- const fetchSpy = mockHtmlFetch();
119
- container.innerHTML = `
120
- <div data-bind='{"section":"docs","page":"guide"}' data-import='/{{section}}/{{page}}.html'></div>
121
- `;
122
- const element = container.querySelector('div');
123
- await Core.scan(element);
124
- await waitForDomSettled();
125
- expect(fetchSpy).toHaveBeenCalledTimes(1);
126
- });
127
- });
128
- describe('制御属性', () => {
129
- it('data-if は未解決参照を false 相当として非表示にする', async () => {
130
- container.innerHTML = '<p data-if="missingFlag">hidden</p>';
131
- const element = container.querySelector('p');
132
- await Core.scan(element);
133
- await waitForDomSettled();
134
- expect(element.hasAttribute('data-if-false')).toBe(true);
135
- });
136
- it('data-if の文字列埋め込みは未解決参照があれば false 相当で非表示にする', async () => {
137
- container.innerHTML = '<p data-if="{{missingFlag}}-suffix">hidden</p>';
138
- const element = container.querySelector('p');
139
- await Core.scan(element);
140
- await waitForDomSettled();
141
- expect(element.hasAttribute('data-if-false')).toBe(true);
142
- });
143
- it('data-if の単体プレースホルダは true なら表示する', async () => {
144
- container.innerHTML = '<p data-bind=\'{"flag":true}\' data-if="flag">visible</p>';
145
- const element = container.querySelector('p');
146
- await Core.scan(element);
147
- await waitForDomSettled();
148
- expect(element.hasAttribute('data-if-false')).toBe(false);
149
- });
150
- it('data-if の単体プレースホルダは null なら非表示にする', async () => {
151
- container.innerHTML = '<p data-bind=\'{"flag":null}\' data-if="flag">hidden</p>';
152
- const element = container.querySelector('p');
153
- await Core.scan(element);
154
- await waitForDomSettled();
155
- expect(element.hasAttribute('data-if-false')).toBe(true);
156
- });
157
- it('data-each は未解決参照を false 相当として空配列扱いにする', async () => {
158
- container.innerHTML = `
159
- <ul data-each="missingItems">
160
- <li>{{name}}</li>
161
- </ul>
162
- `;
163
- const element = container.querySelector('ul');
164
- await Core.scan(element);
165
- await waitForDomSettled();
166
- expect(element.querySelectorAll('li')).toHaveLength(0);
167
- });
168
- it('data-each の文字列埋め込みは未解決参照があれば空配列扱いにする', async () => {
169
- container.innerHTML = `
170
- <ul data-each="{{missingItems}}-suffix">
171
- <li>{{name}}</li>
172
- </ul>
173
- `;
174
- const element = container.querySelector('ul');
175
- await Core.scan(element);
176
- await waitForDomSettled();
177
- expect(element.querySelectorAll('li')).toHaveLength(0);
178
- });
179
- it('data-each の単体プレースホルダは配列なら繰り返し表示する', async () => {
180
- container.innerHTML = `
181
- <ul data-bind='{"items":[{"name":"A"},{"name":"B"}]}' data-each="items">
182
- <li>{{name}}</li>
183
- </ul>
184
- `;
185
- const element = container.querySelector('ul');
186
- await Core.scan(element);
187
- await waitForDomSettled();
188
- expect(element.querySelectorAll('li')).toHaveLength(2);
189
- expect(element.textContent).toContain('A');
190
- expect(element.textContent).toContain('B');
191
- });
192
- });
193
- describe('通常属性', () => {
194
- it('文字列属性の単体プレースホルダは文字列なら設定する', async () => {
195
- container.innerHTML = '<div title="{{\'顧客A\'}}"></div>';
196
- const element = container.querySelector('div');
197
- await Core.scan(element);
198
- await waitForDomSettled();
199
- expect(element.getAttribute('title')).toBe('顧客A');
200
- });
201
- it('文字列属性の単体プレースホルダは未解決参照なら属性削除とする', async () => {
202
- container.innerHTML = '<div title="{{missingTitle}}"></div>';
203
- const element = container.querySelector('div');
204
- await Core.scan(element);
205
- await waitForDomSettled();
206
- expect(element.hasAttribute('title')).toBe(false);
207
- });
208
- it('文字列属性の単体プレースホルダは false なら属性削除とする', async () => {
209
- container.innerHTML = '<div title="{{false}}"></div>';
210
- const element = container.querySelector('div');
211
- await Core.scan(element);
212
- await waitForDomSettled();
213
- expect(element.hasAttribute('title')).toBe(false);
214
- });
215
- it('文字列属性の単体プレースホルダは undefined なら属性削除とする', async () => {
216
- container.innerHTML = '<div title="{{undefined}}"></div>';
217
- const element = container.querySelector('div');
218
- await Core.scan(element);
219
- await waitForDomSettled();
220
- expect(element.hasAttribute('title')).toBe(false);
221
- });
222
- it('文字列属性の文字列埋め込みは未解決参照部分だけ空文字にする', async () => {
223
- container.innerHTML = '<div title="顧客: {{missingTitle}} さん"></div>';
224
- const element = container.querySelector('div');
225
- await Core.scan(element);
226
- await waitForDomSettled();
227
- expect(element.getAttribute('title')).toBe('顧客: さん');
228
- });
229
- it('文字列属性の文字列埋め込みはすべて解決していれば連結して設定する', async () => {
230
- container.innerHTML = '<div title="顧客: {{\'山田\'}} さん"></div>';
231
- const element = container.querySelector('div');
232
- await Core.scan(element);
233
- await waitForDomSettled();
234
- expect(element.getAttribute('title')).toBe('顧客: 山田 さん');
235
- });
236
- it('文字列属性の文字列埋め込みは最終結果が空文字なら属性削除とする', async () => {
237
- container.innerHTML = `
238
- <div data-bind='{"prefix":"","suffix":""}' title="{{prefix}}{{suffix}}"></div>
239
- `;
240
- const element = container.querySelector('div');
241
- await Core.scan(element);
242
- await waitForDomSettled();
243
- expect(element.hasAttribute('title')).toBe(false);
244
- });
245
- it('真偽属性の単体プレースホルダは未解決参照なら属性削除とする', async () => {
246
- container.innerHTML = '<button disabled="{{missingDisabled}}">save</button>';
247
- const element = container.querySelector('button');
248
- await Core.scan(element);
249
- await waitForDomSettled();
250
- expect(element.hasAttribute('disabled')).toBe(false);
251
- });
252
- it('真偽属性の単体プレースホルダは true なら属性付与とする', async () => {
253
- container.innerHTML = '<button disabled="{{true}}">save</button>';
254
- const element = container.querySelector('button');
255
- await Core.scan(element);
256
- await waitForDomSettled();
257
- expect(element.hasAttribute('disabled')).toBe(true);
258
- });
259
- it('真偽属性の単体プレースホルダは false なら属性削除とする', async () => {
260
- container.innerHTML = '<button disabled="{{false}}">save</button>';
261
- const element = container.querySelector('button');
262
- await Core.scan(element);
263
- await waitForDomSettled();
264
- expect(element.hasAttribute('disabled')).toBe(false);
265
- });
266
- it('真偽属性の単体プレースホルダは undefined なら属性削除とする', async () => {
267
- container.innerHTML = '<button disabled="{{undefined}}">save</button>';
268
- const element = container.querySelector('button');
269
- await Core.scan(element);
270
- await waitForDomSettled();
271
- expect(element.hasAttribute('disabled')).toBe(false);
272
- });
273
- it('真偽属性の単体プレースホルダは null なら属性削除とする', async () => {
274
- container.innerHTML = '<button disabled="{{null}}">save</button>';
275
- const element = container.querySelector('button');
276
- await Core.scan(element);
277
- await waitForDomSettled();
278
- expect(element.hasAttribute('disabled')).toBe(false);
279
- });
280
- it('真偽属性の文字列埋め込みは未解決参照があれば属性削除とする', async () => {
281
- container.innerHTML = '<button disabled="x-{{missingDisabled}}">save</button>';
282
- const element = container.querySelector('button');
283
- await Core.scan(element);
284
- await waitForDomSettled();
285
- expect(element.hasAttribute('disabled')).toBe(false);
286
- });
287
- it('data-attr-* の単体プレースホルダは文字列なら反映する', async () => {
288
- container.innerHTML = '<img data-attr-src="{{\'img/42.jpg\'}}" alt="sample">';
289
- const image = container.querySelector('img');
290
- await Core.scan(image);
291
- await waitForDomSettled();
292
- expect(image.getAttribute('src')).toBe('img/42.jpg');
293
- });
294
- it('data-attr-* の単体プレースホルダは未解決参照なら属性削除とする', async () => {
295
- container.innerHTML = '<img data-attr-src="{{missingId}}" alt="sample">';
296
- const image = container.querySelector('img');
297
- await Core.scan(image);
298
- await waitForDomSettled();
299
- expect(image.hasAttribute('src')).toBe(false);
300
- });
301
- it('data-attr-* の単体プレースホルダは false なら属性削除とする', async () => {
302
- container.innerHTML = '<img data-attr-src="{{false}}" alt="sample">';
303
- const image = container.querySelector('img');
304
- await Core.scan(image);
305
- await waitForDomSettled();
306
- expect(image.hasAttribute('src')).toBe(false);
307
- });
308
- it('data-attr-* の単体プレースホルダは undefined なら属性削除とする', async () => {
309
- container.innerHTML = '<img data-attr-src="{{undefined}}" alt="sample">';
310
- const image = container.querySelector('img');
311
- await Core.scan(image);
312
- await waitForDomSettled();
313
- expect(image.hasAttribute('src')).toBe(false);
314
- });
315
- it('data-attr-* の単体プレースホルダは null なら属性削除とする', async () => {
316
- container.innerHTML = '<img data-attr-src="{{null}}" alt="sample">';
317
- const image = container.querySelector('img');
318
- await Core.scan(image);
319
- await waitForDomSettled();
320
- expect(image.hasAttribute('src')).toBe(false);
321
- });
322
- it('data-attr-* の文字列埋め込みはすべて解決していれば反映する', async () => {
323
- container.innerHTML = `
324
- <img data-bind='{"id":"42"}' data-attr-src="img/{{id}}.jpg" alt="sample">
325
- `;
326
- const image = container.querySelector('img');
327
- await Core.scan(image);
328
- await waitForDomSettled();
329
- expect(image.getAttribute('src')).toBe('img/42.jpg');
330
- });
331
- it('data-attr-* の文字列埋め込みは未解決参照があれば属性全体を未反映にする', async () => {
332
- container.innerHTML = '<img data-attr-src="img/{{missingId}}.jpg" alt="sample">';
333
- const image = container.querySelector('img');
334
- await Core.scan(image);
335
- await waitForDomSettled();
336
- expect(image.hasAttribute('src')).toBe(false);
337
- });
338
- it('data-attr-* の文字列埋め込みは全体が未解決なら属性全体を未反映にする', async () => {
339
- container.innerHTML = '<img data-attr-src="{{missingPath}}" alt="sample">';
340
- const image = container.querySelector('img');
341
- await Core.scan(image);
342
- await waitForDomSettled();
343
- expect(image.hasAttribute('src')).toBe(false);
344
- });
345
- });
346
- describe('テキストノード', () => {
347
- it('単体プレースホルダは文字列なら表示する', async () => {
348
- container.innerHTML = '<p>{{\'山田\'}}</p>';
349
- const element = container.querySelector('p');
350
- await Core.scan(element);
351
- await waitForDomSettled();
352
- expect(element.textContent).toBe('山田');
353
- });
354
- it('単体プレースホルダの未解決参照は空文字にする', async () => {
355
- container.innerHTML = '<p>{{missingCustomerName}}</p>';
356
- const element = container.querySelector('p');
357
- await Core.scan(element);
358
- await waitForDomSettled();
359
- expect(element.textContent).toBe('');
360
- });
361
- it('単体プレースホルダは null なら空文字にする', async () => {
362
- container.innerHTML = '<p>{{null}}</p>';
363
- const element = container.querySelector('p');
364
- await Core.scan(element);
365
- await waitForDomSettled();
366
- expect(element.textContent).toBe('');
367
- });
368
- it('単体プレースホルダは undefined なら空文字にする', async () => {
369
- container.innerHTML = '<p>{{undefined}}</p>';
370
- const element = container.querySelector('p');
371
- await Core.scan(element);
372
- await waitForDomSettled();
373
- expect(element.textContent).toBe('');
374
- });
375
- it('文字列埋め込みは未解決参照部分だけ空文字にする', async () => {
376
- container.innerHTML = '<p>顧客: {{missingCustomerName}} さん</p>';
377
- const element = container.querySelector('p');
378
- await Core.scan(element);
379
- await waitForDomSettled();
380
- expect(element.textContent).toBe('顧客: さん');
381
- });
382
- it('文字列埋め込みはすべて解決していれば固定文字列を保持する', async () => {
383
- container.innerHTML = '<p>顧客: {{\'山田\'}} さん</p>';
384
- const element = container.querySelector('p');
385
- await Core.scan(element);
386
- await waitForDomSettled();
387
- expect(element.textContent).toBe('顧客: 山田 さん');
388
- });
389
- });
390
- describe('評価順と補助ケース', () => {
391
- it('data-url-param は通常属性より先に反映される', async () => {
392
- setWindowSearch('?customerId=C001');
393
- container.innerHTML = `
394
- <div data-url-param data-url-arg="params" title="{{params.customerId}}"></div>
395
- `;
396
- const element = container.querySelector('div');
397
- await Core.scan(element);
398
- await waitForDomSettled();
399
- expect(element.getAttribute('title')).toBe('C001');
400
- });
401
- it('data-url-param は制御属性より先に反映される', async () => {
402
- setWindowSearch('?customerId=C001');
403
- container.innerHTML = `
404
- <p data-url-param data-url-arg="params" data-if="params.customerId">visible</p>
405
- `;
406
- const element = container.querySelector('p');
407
- await Core.scan(element);
408
- await waitForDomSettled();
409
- expect(element.hasAttribute('data-if-false')).toBe(false);
410
- });
411
- it('data-url-param は副作用属性より先に反映される', async () => {
412
- const fetchSpy = mockJsonFetch();
413
- setWindowSearch('?customerId=C001');
414
- container.innerHTML = `
415
- <div data-url-param data-url-arg="params" data-fetch="/api/{{params.customerId}}"></div>
416
- `;
417
- const element = container.querySelector('div');
418
- await Core.scan(element);
419
- await waitForDomSettled();
420
- expect(fetchSpy).toHaveBeenCalledTimes(1);
421
- });
422
- it('data-if の単体プレースホルダは false なら非表示にする', async () => {
423
- container.innerHTML = '<p data-bind=\'{"flag":false}\' data-if="flag">hidden</p>';
424
- const element = container.querySelector('p');
425
- await Core.scan(element);
426
- await waitForDomSettled();
427
- expect(element.hasAttribute('data-if-false')).toBe(true);
428
- });
429
- it('data-each の単体プレースホルダは false なら空配列扱いにする', async () => {
430
- container.innerHTML = `
431
- <ul data-bind='{"items":false}' data-each="items">
432
- <li>{{name}}</li>
433
- </ul>
434
- `;
435
- const element = container.querySelector('ul');
436
- await Core.scan(element);
437
- await waitForDomSettled();
438
- expect(element.querySelectorAll('li')).toHaveLength(0);
439
- });
440
- it('文字列属性の単体プレースホルダは null なら属性削除とする', async () => {
441
- container.innerHTML = '<div data-bind=\'{"label":null}\' title="{{label}}"></div>';
442
- const element = container.querySelector('div');
443
- await Core.scan(element);
444
- await waitForDomSettled();
445
- expect(element.hasAttribute('title')).toBe(false);
446
- });
447
- it('文字列属性の単体プレースホルダは data-bind の結果を参照できる', async () => {
448
- container.innerHTML = '<div data-bind=\'{"label":"受注一覧"}\' title="{{label}}"></div>';
449
- const element = container.querySelector('div');
450
- await Core.scan(element);
451
- await waitForDomSettled();
452
- expect(element.getAttribute('title')).toBe('受注一覧');
453
- });
454
- it('テキストノードの単体プレースホルダは false なら空文字にする', async () => {
455
- container.innerHTML = '<p data-bind=\'{"name":false}\'>{{name}}</p>';
456
- const element = container.querySelector('p');
457
- await Core.scan(element);
458
- await waitForDomSettled();
459
- expect(element.textContent).toBe('');
460
- });
461
- });
462
- });
463
- //# sourceMappingURL=placeholder-resolution.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"placeholder-resolution.test.js","sourceRoot":"","sources":["../../tests/placeholder-resolution.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=procedure-action-operations.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"procedure-action-operations.test.d.ts","sourceRoot":"","sources":["../../tests/procedure-action-operations.test.ts"],"names":[],"mappings":""}