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.
- package/README.ja.md +1 -1
- package/README.md +1 -1
- package/dist/haori.cjs.js +10 -10
- package/dist/haori.es.js +191 -165
- package/dist/haori.iife.js +10 -10
- package/dist/index.d.ts +1 -1
- package/package.json +11 -3
- package/dist/haori.cjs.js.map +0 -1
- package/dist/haori.es.js.map +0 -1
- package/dist/haori.iife.js.map +0 -1
- package/dist/package.json +0 -70
- package/dist/src/builtins.d.ts +0 -100
- package/dist/src/builtins.d.ts.map +0 -1
- package/dist/src/builtins.js +0 -194
- package/dist/src/builtins.js.map +0 -1
- package/dist/src/core.d.ts +0 -505
- package/dist/src/core.d.ts.map +0 -1
- package/dist/src/core.js +0 -1817
- package/dist/src/core.js.map +0 -1
- package/dist/src/dev.d.ts +0 -35
- package/dist/src/dev.d.ts.map +0 -1
- package/dist/src/dev.js +0 -44
- package/dist/src/dev.js.map +0 -1
- package/dist/src/env.d.ts +0 -43
- package/dist/src/env.d.ts.map +0 -1
- package/dist/src/env.js +0 -108
- package/dist/src/env.js.map +0 -1
- package/dist/src/event.d.ts +0 -171
- package/dist/src/event.d.ts.map +0 -1
- package/dist/src/event.js +0 -235
- package/dist/src/event.js.map +0 -1
- package/dist/src/event_dispatcher.d.ts +0 -66
- package/dist/src/event_dispatcher.d.ts.map +0 -1
- package/dist/src/event_dispatcher.js +0 -167
- package/dist/src/event_dispatcher.js.map +0 -1
- package/dist/src/expression.d.ts +0 -260
- package/dist/src/expression.d.ts.map +0 -1
- package/dist/src/expression.js +0 -975
- package/dist/src/expression.js.map +0 -1
- package/dist/src/form.d.ts +0 -148
- package/dist/src/form.d.ts.map +0 -1
- package/dist/src/form.js +0 -428
- package/dist/src/form.js.map +0 -1
- package/dist/src/fragment.d.ts +0 -621
- package/dist/src/fragment.d.ts.map +0 -1
- package/dist/src/fragment.js +0 -1963
- package/dist/src/fragment.js.map +0 -1
- package/dist/src/haori.d.ts +0 -130
- package/dist/src/haori.d.ts.map +0 -1
- package/dist/src/haori.js +0 -215
- package/dist/src/haori.js.map +0 -1
- package/dist/src/import.d.ts +0 -19
- package/dist/src/import.d.ts.map +0 -1
- package/dist/src/import.js +0 -64
- package/dist/src/import.js.map +0 -1
- package/dist/src/index.d.ts +0 -27
- package/dist/src/index.d.ts.map +0 -1
- package/dist/src/index.js +0 -30
- package/dist/src/index.js.map +0 -1
- package/dist/src/intersect.d.ts +0 -28
- package/dist/src/intersect.d.ts.map +0 -1
- package/dist/src/intersect.js +0 -201
- package/dist/src/intersect.js.map +0 -1
- package/dist/src/log.d.ts +0 -32
- package/dist/src/log.d.ts.map +0 -1
- package/dist/src/log.js +0 -43
- package/dist/src/log.js.map +0 -1
- package/dist/src/observer.d.ts +0 -24
- package/dist/src/observer.d.ts.map +0 -1
- package/dist/src/observer.js +0 -131
- package/dist/src/observer.js.map +0 -1
- package/dist/src/procedure.d.ts +0 -447
- package/dist/src/procedure.d.ts.map +0 -1
- package/dist/src/procedure.js +0 -1921
- package/dist/src/procedure.js.map +0 -1
- package/dist/src/queue.d.ts +0 -35
- package/dist/src/queue.d.ts.map +0 -1
- package/dist/src/queue.js +0 -202
- package/dist/src/queue.js.map +0 -1
- package/dist/src/url.d.ts +0 -14
- package/dist/src/url.d.ts.map +0 -1
- package/dist/src/url.js +0 -22
- package/dist/src/url.js.map +0 -1
- package/dist/tests/bind-arg-own-binding.test.d.ts +0 -2
- package/dist/tests/bind-arg-own-binding.test.d.ts.map +0 -1
- package/dist/tests/bind-arg-own-binding.test.js +0 -63
- package/dist/tests/bind-arg-own-binding.test.js.map +0 -1
- package/dist/tests/bindcomplete-and-scope.test.d.ts +0 -2
- package/dist/tests/bindcomplete-and-scope.test.d.ts.map +0 -1
- package/dist/tests/bindcomplete-and-scope.test.js +0 -115
- package/dist/tests/bindcomplete-and-scope.test.js.map +0 -1
- package/dist/tests/builtins.test.d.ts +0 -2
- package/dist/tests/builtins.test.d.ts.map +0 -1
- package/dist/tests/builtins.test.js +0 -152
- package/dist/tests/builtins.test.js.map +0 -1
- package/dist/tests/click-attributes.test.d.ts +0 -2
- package/dist/tests/click-attributes.test.d.ts.map +0 -1
- package/dist/tests/click-attributes.test.js +0 -113
- package/dist/tests/click-attributes.test.js.map +0 -1
- package/dist/tests/click-no-disabled.test.d.ts +0 -2
- package/dist/tests/click-no-disabled.test.d.ts.map +0 -1
- package/dist/tests/click-no-disabled.test.js +0 -67
- package/dist/tests/click-no-disabled.test.js.map +0 -1
- package/dist/tests/core.test.d.ts +0 -5
- package/dist/tests/core.test.d.ts.map +0 -1
- package/dist/tests/core.test.js +0 -1056
- package/dist/tests/core.test.js.map +0 -1
- package/dist/tests/data-bind-arg-reeval.test.d.ts +0 -2
- package/dist/tests/data-bind-arg-reeval.test.d.ts.map +0 -1
- package/dist/tests/data-bind-arg-reeval.test.js +0 -119
- package/dist/tests/data-bind-arg-reeval.test.js.map +0 -1
- package/dist/tests/data-bind-merge.test.d.ts +0 -2
- package/dist/tests/data-bind-merge.test.d.ts.map +0 -1
- package/dist/tests/data-bind-merge.test.js +0 -86
- package/dist/tests/data-bind-merge.test.js.map +0 -1
- package/dist/tests/data-click-defer.test.d.ts +0 -2
- package/dist/tests/data-click-defer.test.d.ts.map +0 -1
- package/dist/tests/data-click-defer.test.js +0 -57
- package/dist/tests/data-click-defer.test.js.map +0 -1
- package/dist/tests/data-click-run.test.d.ts +0 -5
- package/dist/tests/data-click-run.test.d.ts.map +0 -1
- package/dist/tests/data-click-run.test.js +0 -109
- package/dist/tests/data-click-run.test.js.map +0 -1
- package/dist/tests/data-derive.test.d.ts +0 -2
- package/dist/tests/data-derive.test.d.ts.map +0 -1
- package/dist/tests/data-derive.test.js +0 -999
- package/dist/tests/data-derive.test.js.map +0 -1
- package/dist/tests/data-each-browserlike.test.d.ts +0 -2
- package/dist/tests/data-each-browserlike.test.d.ts.map +0 -1
- package/dist/tests/data-each-browserlike.test.js +0 -48
- package/dist/tests/data-each-browserlike.test.js.map +0 -1
- package/dist/tests/data-each-fragment-debug.test.d.ts +0 -2
- package/dist/tests/data-each-fragment-debug.test.d.ts.map +0 -1
- package/dist/tests/data-each-fragment-debug.test.js +0 -119
- package/dist/tests/data-each-fragment-debug.test.js.map +0 -1
- package/dist/tests/data-each-table.test.d.ts +0 -2
- package/dist/tests/data-each-table.test.d.ts.map +0 -1
- package/dist/tests/data-each-table.test.js +0 -131
- package/dist/tests/data-each-table.test.js.map +0 -1
- package/dist/tests/data-each-template-recovery.test.d.ts +0 -2
- package/dist/tests/data-each-template-recovery.test.d.ts.map +0 -1
- package/dist/tests/data-each-template-recovery.test.js +0 -87
- package/dist/tests/data-each-template-recovery.test.js.map +0 -1
- package/dist/tests/data-event-prevent.test.d.ts +0 -2
- package/dist/tests/data-event-prevent.test.d.ts.map +0 -1
- package/dist/tests/data-event-prevent.test.js +0 -76
- package/dist/tests/data-event-prevent.test.js.map +0 -1
- package/dist/tests/data-fetch-form-input-binding.test.d.ts +0 -2
- package/dist/tests/data-fetch-form-input-binding.test.d.ts.map +0 -1
- package/dist/tests/data-fetch-form-input-binding.test.js +0 -202
- package/dist/tests/data-fetch-form-input-binding.test.js.map +0 -1
- package/dist/tests/data-fetch-tbody-dom.test.d.ts +0 -2
- package/dist/tests/data-fetch-tbody-dom.test.d.ts.map +0 -1
- package/dist/tests/data-fetch-tbody-dom.test.js +0 -82
- package/dist/tests/data-fetch-tbody-dom.test.js.map +0 -1
- package/dist/tests/data-form-container.test.d.ts +0 -2
- package/dist/tests/data-form-container.test.d.ts.map +0 -1
- package/dist/tests/data-form-container.test.js +0 -88
- package/dist/tests/data-form-container.test.js.map +0 -1
- package/dist/tests/data-if-dev-diagnostics.test.d.ts +0 -2
- package/dist/tests/data-if-dev-diagnostics.test.d.ts.map +0 -1
- package/dist/tests/data-if-dev-diagnostics.test.js +0 -55
- package/dist/tests/data-if-dev-diagnostics.test.js.map +0 -1
- package/dist/tests/data-if-falsy.test.d.ts +0 -2
- package/dist/tests/data-if-falsy.test.d.ts.map +0 -1
- package/dist/tests/data-if-falsy.test.js +0 -73
- package/dist/tests/data-if-falsy.test.js.map +0 -1
- package/dist/tests/data-load-on-show.test.d.ts +0 -2
- package/dist/tests/data-load-on-show.test.d.ts.map +0 -1
- package/dist/tests/data-load-on-show.test.js +0 -98
- package/dist/tests/data-load-on-show.test.js.map +0 -1
- package/dist/tests/derive-each-render-wait.test.d.ts +0 -2
- package/dist/tests/derive-each-render-wait.test.d.ts.map +0 -1
- package/dist/tests/derive-each-render-wait.test.js +0 -90
- package/dist/tests/derive-each-render-wait.test.js.map +0 -1
- package/dist/tests/dev.test.d.ts +0 -2
- package/dist/tests/dev.test.d.ts.map +0 -1
- package/dist/tests/dev.test.js +0 -51
- package/dist/tests/dev.test.js.map +0 -1
- package/dist/tests/each-update-event.test.d.ts +0 -2
- package/dist/tests/each-update-event.test.d.ts.map +0 -1
- package/dist/tests/each-update-event.test.js +0 -83
- package/dist/tests/each-update-event.test.js.map +0 -1
- package/dist/tests/each_arg.test.d.ts +0 -2
- package/dist/tests/each_arg.test.d.ts.map +0 -1
- package/dist/tests/each_arg.test.js +0 -41
- package/dist/tests/each_arg.test.js.map +0 -1
- package/dist/tests/env.test.d.ts +0 -2
- package/dist/tests/env.test.d.ts.map +0 -1
- package/dist/tests/env.test.js +0 -124
- package/dist/tests/env.test.js.map +0 -1
- package/dist/tests/evaluation-profile.test.d.ts +0 -2
- package/dist/tests/evaluation-profile.test.d.ts.map +0 -1
- package/dist/tests/evaluation-profile.test.js +0 -92
- package/dist/tests/evaluation-profile.test.js.map +0 -1
- package/dist/tests/event.test.d.ts +0 -2
- package/dist/tests/event.test.d.ts.map +0 -1
- package/dist/tests/event.test.js +0 -300
- package/dist/tests/event.test.js.map +0 -1
- package/dist/tests/expression-disallowed-keyword-hint.test.d.ts +0 -2
- package/dist/tests/expression-disallowed-keyword-hint.test.d.ts.map +0 -1
- package/dist/tests/expression-disallowed-keyword-hint.test.js +0 -45
- package/dist/tests/expression-disallowed-keyword-hint.test.js.map +0 -1
- package/dist/tests/expression-forbidden-hint.test.d.ts +0 -2
- package/dist/tests/expression-forbidden-hint.test.d.ts.map +0 -1
- package/dist/tests/expression-forbidden-hint.test.js +0 -37
- package/dist/tests/expression-forbidden-hint.test.js.map +0 -1
- package/dist/tests/expression.test.d.ts +0 -2
- package/dist/tests/expression.test.d.ts.map +0 -1
- package/dist/tests/expression.test.js +0 -482
- package/dist/tests/expression.test.js.map +0 -1
- package/dist/tests/fetch-and-procedure-scenarios.test.d.ts +0 -2
- package/dist/tests/fetch-and-procedure-scenarios.test.d.ts.map +0 -1
- package/dist/tests/fetch-and-procedure-scenarios.test.js +0 -195
- package/dist/tests/fetch-and-procedure-scenarios.test.js.map +0 -1
- package/dist/tests/form-number-type.test.d.ts +0 -2
- package/dist/tests/form-number-type.test.d.ts.map +0 -1
- package/dist/tests/form-number-type.test.js +0 -83
- package/dist/tests/form-number-type.test.js.map +0 -1
- package/dist/tests/form.test.d.ts +0 -2
- package/dist/tests/form.test.d.ts.map +0 -1
- package/dist/tests/form.test.js +0 -636
- package/dist/tests/form.test.js.map +0 -1
- package/dist/tests/fragment.test.d.ts +0 -2
- package/dist/tests/fragment.test.d.ts.map +0 -1
- package/dist/tests/fragment.test.js +0 -284
- package/dist/tests/fragment.test.js.map +0 -1
- package/dist/tests/haori.test.d.ts +0 -2
- package/dist/tests/haori.test.d.ts.map +0 -1
- package/dist/tests/haori.test.js +0 -149
- package/dist/tests/haori.test.js.map +0 -1
- package/dist/tests/helpers/async.d.ts +0 -20
- package/dist/tests/helpers/async.d.ts.map +0 -1
- package/dist/tests/helpers/async.js +0 -35
- package/dist/tests/helpers/async.js.map +0 -1
- package/dist/tests/import.test.d.ts +0 -2
- package/dist/tests/import.test.d.ts.map +0 -1
- package/dist/tests/import.test.js +0 -148
- package/dist/tests/import.test.js.map +0 -1
- package/dist/tests/intersect.test.d.ts +0 -2
- package/dist/tests/intersect.test.d.ts.map +0 -1
- package/dist/tests/intersect.test.js +0 -173
- package/dist/tests/intersect.test.js.map +0 -1
- package/dist/tests/log.test.d.ts +0 -2
- package/dist/tests/log.test.d.ts.map +0 -1
- package/dist/tests/log.test.js +0 -58
- package/dist/tests/log.test.js.map +0 -1
- package/dist/tests/observer.test.d.ts +0 -2
- package/dist/tests/observer.test.d.ts.map +0 -1
- package/dist/tests/observer.test.js +0 -64
- package/dist/tests/observer.test.js.map +0 -1
- package/dist/tests/placeholder-resolution.test.d.ts +0 -2
- package/dist/tests/placeholder-resolution.test.d.ts.map +0 -1
- package/dist/tests/placeholder-resolution.test.js +0 -463
- package/dist/tests/placeholder-resolution.test.js.map +0 -1
- package/dist/tests/procedure-action-operations.test.d.ts +0 -2
- package/dist/tests/procedure-action-operations.test.d.ts.map +0 -1
- package/dist/tests/procedure-action-operations.test.js +0 -1140
- package/dist/tests/procedure-action-operations.test.js.map +0 -1
- package/dist/tests/procedure-bind-append.test.d.ts +0 -2
- package/dist/tests/procedure-bind-append.test.d.ts.map +0 -1
- package/dist/tests/procedure-bind-append.test.js +0 -80
- package/dist/tests/procedure-bind-append.test.js.map +0 -1
- package/dist/tests/procedure-fetch-options.test.d.ts +0 -2
- package/dist/tests/procedure-fetch-options.test.d.ts.map +0 -1
- package/dist/tests/procedure-fetch-options.test.js +0 -255
- package/dist/tests/procedure-fetch-options.test.js.map +0 -1
- package/dist/tests/procedure.test.d.ts +0 -2
- package/dist/tests/procedure.test.d.ts.map +0 -1
- package/dist/tests/procedure.test.js +0 -137
- package/dist/tests/procedure.test.js.map +0 -1
- package/dist/tests/procedure_events.test.d.ts +0 -7
- package/dist/tests/procedure_events.test.d.ts.map +0 -1
- package/dist/tests/procedure_events.test.js +0 -261
- package/dist/tests/procedure_events.test.js.map +0 -1
- package/dist/tests/render-wait.test.d.ts +0 -2
- package/dist/tests/render-wait.test.d.ts.map +0 -1
- package/dist/tests/render-wait.test.js +0 -68
- package/dist/tests/render-wait.test.js.map +0 -1
- package/dist/tests/reset_each.test.d.ts +0 -2
- package/dist/tests/reset_each.test.d.ts.map +0 -1
- package/dist/tests/reset_each.test.js +0 -215
- package/dist/tests/reset_each.test.js.map +0 -1
- package/dist/tests/row-move.test.d.ts +0 -2
- package/dist/tests/row-move.test.d.ts.map +0 -1
- package/dist/tests/row-move.test.js +0 -220
- package/dist/tests/row-move.test.js.map +0 -1
- package/dist/tests/row-operations.test.d.ts +0 -2
- package/dist/tests/row-operations.test.d.ts.map +0 -1
- package/dist/tests/row-operations.test.js +0 -259
- package/dist/tests/row-operations.test.js.map +0 -1
- package/dist/tests/scheduled-evaluate-wait.test.d.ts +0 -2
- package/dist/tests/scheduled-evaluate-wait.test.d.ts.map +0 -1
- package/dist/tests/scheduled-evaluate-wait.test.js +0 -68
- package/dist/tests/scheduled-evaluate-wait.test.js.map +0 -1
- package/dist/tests/url.test.d.ts +0 -2
- package/dist/tests/url.test.d.ts.map +0 -1
- package/dist/tests/url.test.js +0 -150
- package/dist/tests/url.test.js.map +0 -1
- package/dist/vite.config.d.ts +0 -3
- package/dist/vite.config.d.ts.map +0 -1
- package/dist/vite.config.js +0 -28
- package/dist/vite.config.js.map +0 -1
- package/dist/vitest.config.d.ts +0 -3
- package/dist/vitest.config.d.ts.map +0 -1
- package/dist/vitest.config.js +0 -19
- 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 +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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"}
|
package/dist/tests/log.test.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"log.test.d.ts","sourceRoot":"","sources":["../../tests/log.test.ts"],"names":[],"mappings":""}
|
package/dist/tests/log.test.js
DELETED
|
@@ -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 +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":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"placeholder-resolution.test.d.ts","sourceRoot":"","sources":["../../tests/placeholder-resolution.test.ts"],"names":[],"mappings":""}
|