@makroz/web 1.2.6 → 1.4.0
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/dist/auth/CookieStorageAdapter.test.d.ts +11 -0
- package/dist/auth/CookieStorageAdapter.test.d.ts.map +1 -0
- package/dist/auth/CookieStorageAdapter.test.js +80 -0
- package/dist/auth/CookieStorageAdapter.test.js.map +1 -0
- package/dist/auth/LocalStorageAdapter.test.d.ts +12 -0
- package/dist/auth/LocalStorageAdapter.test.d.ts.map +1 -0
- package/dist/auth/LocalStorageAdapter.test.js +71 -0
- package/dist/auth/LocalStorageAdapter.test.js.map +1 -0
- package/dist/auth/authExports.test.d.ts +2 -0
- package/dist/auth/authExports.test.d.ts.map +1 -0
- package/dist/auth/authExports.test.js +15 -0
- package/dist/auth/authExports.test.js.map +1 -0
- package/dist/components/MkAccordion.stories.test.d.ts +2 -0
- package/dist/components/MkAccordion.stories.test.d.ts.map +1 -0
- package/dist/components/MkAccordion.stories.test.js +18 -0
- package/dist/components/MkAccordion.stories.test.js.map +1 -0
- package/dist/components/MkAlert.stories.test.d.ts +2 -0
- package/dist/components/MkAlert.stories.test.d.ts.map +1 -0
- package/dist/components/MkAlert.stories.test.js +16 -0
- package/dist/components/MkAlert.stories.test.js.map +1 -0
- package/dist/components/MkAvatar.stories.test.d.ts +2 -0
- package/dist/components/MkAvatar.stories.test.d.ts.map +1 -0
- package/dist/components/MkAvatar.stories.test.js +16 -0
- package/dist/components/MkAvatar.stories.test.js.map +1 -0
- package/dist/components/MkBadge.stories.test.d.ts +2 -0
- package/dist/components/MkBadge.stories.test.d.ts.map +1 -0
- package/dist/components/MkBadge.stories.test.js +16 -0
- package/dist/components/MkBadge.stories.test.js.map +1 -0
- package/dist/components/MkButton.test.d.ts +2 -0
- package/dist/components/MkButton.test.d.ts.map +1 -0
- package/dist/components/MkButton.test.js +56 -0
- package/dist/components/MkButton.test.js.map +1 -0
- package/dist/components/MkCheck.stories.test.d.ts +2 -0
- package/dist/components/MkCheck.stories.test.d.ts.map +1 -0
- package/dist/components/MkCheck.stories.test.js +16 -0
- package/dist/components/MkCheck.stories.test.js.map +1 -0
- package/dist/components/MkDatePicker.stories.test.d.ts +2 -0
- package/dist/components/MkDatePicker.stories.test.d.ts.map +1 -0
- package/dist/components/MkDatePicker.stories.test.js +16 -0
- package/dist/components/MkDatePicker.stories.test.js.map +1 -0
- package/dist/components/MkDivider.stories.test.d.ts +2 -0
- package/dist/components/MkDivider.stories.test.d.ts.map +1 -0
- package/dist/components/MkDivider.stories.test.js +15 -0
- package/dist/components/MkDivider.stories.test.js.map +1 -0
- package/dist/components/MkDropDown.stories.test.d.ts +2 -0
- package/dist/components/MkDropDown.stories.test.d.ts.map +1 -0
- package/dist/components/MkDropDown.stories.test.js +18 -0
- package/dist/components/MkDropDown.stories.test.js.map +1 -0
- package/dist/components/MkEmptyState.stories.test.d.ts +2 -0
- package/dist/components/MkEmptyState.stories.test.d.ts.map +1 -0
- package/dist/components/MkEmptyState.stories.test.js +15 -0
- package/dist/components/MkEmptyState.stories.test.js.map +1 -0
- package/dist/components/MkFileUpload-leak.test.d.ts +16 -0
- package/dist/components/MkFileUpload-leak.test.d.ts.map +1 -0
- package/dist/components/MkFileUpload-leak.test.js +157 -0
- package/dist/components/MkFileUpload-leak.test.js.map +1 -0
- package/dist/components/MkFileUpload.stories.test.d.ts +2 -0
- package/dist/components/MkFileUpload.stories.test.d.ts.map +1 -0
- package/dist/components/MkFileUpload.stories.test.js +15 -0
- package/dist/components/MkFileUpload.stories.test.js.map +1 -0
- package/dist/components/MkInfiniteList.stories.test.d.ts +2 -0
- package/dist/components/MkInfiniteList.stories.test.d.ts.map +1 -0
- package/dist/components/MkInfiniteList.stories.test.js +24 -0
- package/dist/components/MkInfiniteList.stories.test.js.map +1 -0
- package/dist/components/MkInput.stories.test.d.ts +2 -0
- package/dist/components/MkInput.stories.test.d.ts.map +1 -0
- package/dist/components/MkInput.stories.test.js +16 -0
- package/dist/components/MkInput.stories.test.js.map +1 -0
- package/dist/components/MkLoading.stories.test.d.ts +2 -0
- package/dist/components/MkLoading.stories.test.d.ts.map +1 -0
- package/dist/components/MkLoading.stories.test.js +15 -0
- package/dist/components/MkLoading.stories.test.js.map +1 -0
- package/dist/components/MkProgressBar.stories.test.d.ts +2 -0
- package/dist/components/MkProgressBar.stories.test.d.ts.map +1 -0
- package/dist/components/MkProgressBar.stories.test.js +15 -0
- package/dist/components/MkProgressBar.stories.test.js.map +1 -0
- package/dist/components/MkRadio.stories.test.d.ts +2 -0
- package/dist/components/MkRadio.stories.test.d.ts.map +1 -0
- package/dist/components/MkRadio.stories.test.js +18 -0
- package/dist/components/MkRadio.stories.test.js.map +1 -0
- package/dist/components/MkSearchInput.stories.test.d.ts +2 -0
- package/dist/components/MkSearchInput.stories.test.d.ts.map +1 -0
- package/dist/components/MkSearchInput.stories.test.js +15 -0
- package/dist/components/MkSearchInput.stories.test.js.map +1 -0
- package/dist/components/MkSelect.stories.test.d.ts +2 -0
- package/dist/components/MkSelect.stories.test.d.ts.map +1 -0
- package/dist/components/MkSelect.stories.test.js +21 -0
- package/dist/components/MkSelect.stories.test.js.map +1 -0
- package/dist/components/MkSkeleton.stories.test.d.ts +2 -0
- package/dist/components/MkSkeleton.stories.test.d.ts.map +1 -0
- package/dist/components/MkSkeleton.stories.test.js +15 -0
- package/dist/components/MkSkeleton.stories.test.js.map +1 -0
- package/dist/components/MkSwitch.stories.test.d.ts +2 -0
- package/dist/components/MkSwitch.stories.test.d.ts.map +1 -0
- package/dist/components/MkSwitch.stories.test.js +15 -0
- package/dist/components/MkSwitch.stories.test.js.map +1 -0
- package/dist/components/MkTable-keyExtractor.test.d.ts +15 -0
- package/dist/components/MkTable-keyExtractor.test.d.ts.map +1 -0
- package/dist/components/MkTable-keyExtractor.test.js +65 -0
- package/dist/components/MkTable-keyExtractor.test.js.map +1 -0
- package/dist/components/MkTable.stories.test.d.ts +2 -0
- package/dist/components/MkTable.stories.test.d.ts.map +1 -0
- package/dist/components/MkTable.stories.test.js +25 -0
- package/dist/components/MkTable.stories.test.js.map +1 -0
- package/dist/components/MkTextArea.stories.test.d.ts +2 -0
- package/dist/components/MkTextArea.stories.test.d.ts.map +1 -0
- package/dist/components/MkTextArea.stories.test.js +15 -0
- package/dist/components/MkTextArea.stories.test.js.map +1 -0
- package/dist/components/MkToastContainer.stories.test.d.ts +2 -0
- package/dist/components/MkToastContainer.stories.test.d.ts.map +1 -0
- package/dist/components/MkToastContainer.stories.test.js +29 -0
- package/dist/components/MkToastContainer.stories.test.js.map +1 -0
- package/dist/components/MkTooltip.stories.test.d.ts +2 -0
- package/dist/components/MkTooltip.stories.test.d.ts.map +1 -0
- package/dist/components/MkTooltip.stories.test.js +15 -0
- package/dist/components/MkTooltip.stories.test.js.map +1 -0
- package/dist/components/MkWindowList.stories.test.d.ts +2 -0
- package/dist/components/MkWindowList.stories.test.d.ts.map +1 -0
- package/dist/components/MkWindowList.stories.test.js +19 -0
- package/dist/components/MkWindowList.stories.test.js.map +1 -0
- package/dist/hooks/useApi.test.d.ts +2 -0
- package/dist/hooks/useApi.test.d.ts.map +1 -0
- package/dist/hooks/useApi.test.js +238 -0
- package/dist/hooks/useApi.test.js.map +1 -0
- package/dist/hooks/useMkCrud.test.d.ts +2 -0
- package/dist/hooks/useMkCrud.test.d.ts.map +1 -0
- package/dist/hooks/useMkCrud.test.js +87 -0
- package/dist/hooks/useMkCrud.test.js.map +1 -0
- package/dist/hooks/useMkForm.test.d.ts +2 -0
- package/dist/hooks/useMkForm.test.d.ts.map +1 -0
- package/dist/hooks/useMkForm.test.js +116 -0
- package/dist/hooks/useMkForm.test.js.map +1 -0
- package/dist/hooks/useMkInfiniteList.d.ts.map +1 -1
- package/dist/hooks/useMkInfiniteList.js +6 -2
- package/dist/hooks/useMkInfiniteList.js.map +1 -1
- package/dist/hooks/useMkInfiniteList.test.d.ts +2 -0
- package/dist/hooks/useMkInfiniteList.test.d.ts.map +1 -0
- package/dist/hooks/useMkInfiniteList.test.js +84 -0
- package/dist/hooks/useMkInfiniteList.test.js.map +1 -0
- package/dist/hooks/useMkList.d.ts +15 -4
- package/dist/hooks/useMkList.d.ts.map +1 -1
- package/dist/hooks/useMkList.js +16 -12
- package/dist/hooks/useMkList.js.map +1 -1
- package/dist/hooks/useMkList.test.d.ts +2 -0
- package/dist/hooks/useMkList.test.d.ts.map +1 -0
- package/dist/hooks/useMkList.test.js +265 -0
- package/dist/hooks/useMkList.test.js.map +1 -0
- package/dist/theme/MkThemeProvider.test.d.ts +2 -0
- package/dist/theme/MkThemeProvider.test.d.ts.map +1 -0
- package/dist/theme/MkThemeProvider.test.js +32 -0
- package/dist/theme/MkThemeProvider.test.js.map +1 -0
- package/package.json +19 -19
- package/LICENSE +0 -33
- package/dist/components/MkAccordion.module.css +0 -79
- package/dist/components/MkAlert.module.css +0 -103
- package/dist/components/MkAvatar.module.css +0 -62
- package/dist/components/MkBadge.module.css +0 -74
- package/dist/components/MkButton.module.css +0 -85
- package/dist/components/MkCard.module.css +0 -63
- package/dist/components/MkCheck.module.css +0 -87
- package/dist/components/MkDatePicker.module.css +0 -77
- package/dist/components/MkDivider.module.css +0 -39
- package/dist/components/MkDropDown.module.css +0 -108
- package/dist/components/MkEmptyState.module.css +0 -35
- package/dist/components/MkFileUpload.module.css +0 -74
- package/dist/components/MkInfiniteList.module.css +0 -69
- package/dist/components/MkInput.module.css +0 -94
- package/dist/components/MkLoading.module.css +0 -39
- package/dist/components/MkModal.module.css +0 -107
- package/dist/components/MkProgressBar.module.css +0 -48
- package/dist/components/MkRadio.module.css +0 -74
- package/dist/components/MkSearchInput.module.css +0 -80
- package/dist/components/MkSelect.module.css +0 -177
- package/dist/components/MkSkeleton.module.css +0 -28
- package/dist/components/MkSwitch.module.css +0 -108
- package/dist/components/MkTable.module.css +0 -163
- package/dist/components/MkTabs.module.css +0 -117
- package/dist/components/MkThemeEditor.module.css +0 -177
- package/dist/components/MkToastContainer.module.css +0 -95
- package/dist/components/MkTooltip.module.css +0 -43
- package/dist/components/MkWindowList.module.css +0 -59
- package/dist/styles/index.css +0 -124
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tests for CookieStorageAdapter.
|
|
3
|
+
*
|
|
4
|
+
* jsdom provides `document.cookie`, but it does not implement
|
|
5
|
+
* `Max-Age` or `Secure` exactly like a real browser — the cookie
|
|
6
|
+
* round-trip works because we set and read in the same context.
|
|
7
|
+
* Path=/SameSite=Lax are advisory on jsdom and don't affect the
|
|
8
|
+
* read-back.
|
|
9
|
+
*/
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=CookieStorageAdapter.test.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CookieStorageAdapter.test.d.ts","sourceRoot":"","sources":["../../src/auth/CookieStorageAdapter.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tests for CookieStorageAdapter.
|
|
3
|
+
*
|
|
4
|
+
* jsdom provides `document.cookie`, but it does not implement
|
|
5
|
+
* `Max-Age` or `Secure` exactly like a real browser — the cookie
|
|
6
|
+
* round-trip works because we set and read in the same context.
|
|
7
|
+
* Path=/SameSite=Lax are advisory on jsdom and don't affect the
|
|
8
|
+
* read-back.
|
|
9
|
+
*/
|
|
10
|
+
import { describe, it, expect, beforeEach, vi } from 'vitest';
|
|
11
|
+
import { CookieStorageAdapter } from './AuthStorageAdapter';
|
|
12
|
+
function clearCookies() {
|
|
13
|
+
// Wipe every cookie jsdom knows about so each test is independent.
|
|
14
|
+
const cookies = document.cookie.split('; ');
|
|
15
|
+
for (const c of cookies) {
|
|
16
|
+
const eq = c.indexOf('=');
|
|
17
|
+
const name = eq === -1 ? c : c.slice(0, eq);
|
|
18
|
+
document.cookie = `${name}=; Max-Age=0; Path=/`;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
describe('CookieStorageAdapter', () => {
|
|
22
|
+
beforeEach(() => {
|
|
23
|
+
clearCookies();
|
|
24
|
+
});
|
|
25
|
+
it('roundtrips a string value through document.cookie', () => {
|
|
26
|
+
const adapter = new CookieStorageAdapter();
|
|
27
|
+
adapter.setItem('mk_auth_admin_access_token', 'abc123');
|
|
28
|
+
expect(adapter.getItem('mk_auth_admin_access_token')).toBe('abc123');
|
|
29
|
+
});
|
|
30
|
+
it('roundtrips URL-encoded values (handles "=", spaces, unicode)', () => {
|
|
31
|
+
const adapter = new CookieStorageAdapter();
|
|
32
|
+
const tricky = 'token=abc; spaced value / 中文';
|
|
33
|
+
adapter.setItem('k', tricky);
|
|
34
|
+
expect(adapter.getItem('k')).toBe(tricky);
|
|
35
|
+
});
|
|
36
|
+
it('returns null for missing keys', () => {
|
|
37
|
+
const adapter = new CookieStorageAdapter();
|
|
38
|
+
expect(adapter.getItem('does-not-exist')).toBeNull();
|
|
39
|
+
});
|
|
40
|
+
it('removes a key with removeItem', () => {
|
|
41
|
+
const adapter = new CookieStorageAdapter();
|
|
42
|
+
adapter.setItem('k', 'v');
|
|
43
|
+
expect(adapter.getItem('k')).toBe('v');
|
|
44
|
+
adapter.removeItem('k');
|
|
45
|
+
expect(adapter.getItem('k')).toBeNull();
|
|
46
|
+
});
|
|
47
|
+
it('emits the Secure flag when constructed with secure:true', () => {
|
|
48
|
+
var _a;
|
|
49
|
+
const adapter = new CookieStorageAdapter({ secure: true });
|
|
50
|
+
const setSpy = vi.spyOn(document, 'cookie', 'set');
|
|
51
|
+
adapter.setItem('k', 'v');
|
|
52
|
+
// jsdom normalizes attribute casing; check the substring appears.
|
|
53
|
+
expect((_a = setSpy.mock.calls[0]) === null || _a === void 0 ? void 0 : _a[0]).toContain('Secure');
|
|
54
|
+
setSpy.mockRestore();
|
|
55
|
+
});
|
|
56
|
+
it('is a no-op when document is undefined (SSR)', () => {
|
|
57
|
+
const original = globalThis.document;
|
|
58
|
+
delete globalThis.document;
|
|
59
|
+
try {
|
|
60
|
+
const adapter = new CookieStorageAdapter();
|
|
61
|
+
expect(() => adapter.setItem('k', 'v')).not.toThrow();
|
|
62
|
+
expect(adapter.getItem('k')).toBeNull();
|
|
63
|
+
expect(() => adapter.removeItem('k')).not.toThrow();
|
|
64
|
+
}
|
|
65
|
+
finally {
|
|
66
|
+
globalThis.document = original;
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
it('exposes a singleton-style default via getDefaultAuthStorage()', async () => {
|
|
70
|
+
const { getDefaultAuthStorage } = await import('./AuthStorageAdapter');
|
|
71
|
+
const a = getDefaultAuthStorage();
|
|
72
|
+
const b = getDefaultAuthStorage();
|
|
73
|
+
expect(a).toBeInstanceOf(CookieStorageAdapter);
|
|
74
|
+
expect(b).toBeInstanceOf(CookieStorageAdapter);
|
|
75
|
+
// Each call returns a fresh instance — multiple providers in the
|
|
76
|
+
// same tree (different scopes) must not share adapter state.
|
|
77
|
+
expect(a).not.toBe(b);
|
|
78
|
+
});
|
|
79
|
+
});
|
|
80
|
+
//# sourceMappingURL=CookieStorageAdapter.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CookieStorageAdapter.test.js","sourceRoot":"","sources":["../../src/auth/CookieStorageAdapter.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAE5D,SAAS,YAAY;IACjB,mEAAmE;IACnE,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC5C,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACtB,MAAM,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC1B,MAAM,IAAI,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC5C,QAAQ,CAAC,MAAM,GAAG,GAAG,IAAI,sBAAsB,CAAC;IACpD,CAAC;AACL,CAAC;AAED,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IAClC,UAAU,CAAC,GAAG,EAAE;QACZ,YAAY,EAAE,CAAC;IACnB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;QACzD,MAAM,OAAO,GAAG,IAAI,oBAAoB,EAAE,CAAC;QAC3C,OAAO,CAAC,OAAO,CAAC,4BAA4B,EAAE,QAAQ,CAAC,CAAC;QACxD,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACzE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8DAA8D,EAAE,GAAG,EAAE;QACpE,MAAM,OAAO,GAAG,IAAI,oBAAoB,EAAE,CAAC;QAC3C,MAAM,MAAM,GAAG,8BAA8B,CAAC;QAC9C,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAC7B,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;QACrC,MAAM,OAAO,GAAG,IAAI,oBAAoB,EAAE,CAAC;QAC3C,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;QACrC,MAAM,OAAO,GAAG,IAAI,oBAAoB,EAAE,CAAC;QAC3C,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC1B,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACvC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACxB,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yDAAyD,EAAE,GAAG,EAAE;;QAC/D,MAAM,OAAO,GAAG,IAAI,oBAAoB,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3D,MAAM,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;QACnD,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC1B,kEAAkE;QAClE,MAAM,CAAC,MAAA,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,0CAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QACtD,MAAM,CAAC,WAAW,EAAE,CAAC;IACzB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACnD,MAAM,QAAQ,GAAI,UAAqC,CAAC,QAAQ,CAAC;QACjE,OAAQ,UAAqC,CAAC,QAAQ,CAAC;QAEvD,IAAI,CAAC;YACD,MAAM,OAAO,GAAG,IAAI,oBAAoB,EAAE,CAAC;YAC3C,MAAM,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YACtD,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;YACxC,MAAM,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QACxD,CAAC;gBAAS,CAAC;YACN,UAAqC,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC/D,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+DAA+D,EAAE,KAAK,IAAI,EAAE;QAC3E,MAAM,EAAE,qBAAqB,EAAE,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC;QACvE,MAAM,CAAC,GAAG,qBAAqB,EAAE,CAAC;QAClC,MAAM,CAAC,GAAG,qBAAqB,EAAE,CAAC;QAClC,MAAM,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,oBAAoB,CAAC,CAAC;QAC/C,MAAM,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,oBAAoB,CAAC,CAAC;QAC/C,iEAAiE;QACjE,6DAA6D;QAC7D,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tests for the deprecated LocalStorageAdapter.
|
|
3
|
+
*
|
|
4
|
+
* Behavior must match the previous default (read/write/remove via
|
|
5
|
+
* `window.localStorage`) plus a one-shot `console.warn` on the first
|
|
6
|
+
* `setItem`. The warn flag is module-level (so a single session
|
|
7
|
+
* surfaces one warning even if multiple adapters are constructed);
|
|
8
|
+
* tests reload the module via `vi.resetModules()` to reset that flag
|
|
9
|
+
* per-test without changing production behavior.
|
|
10
|
+
*/
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=LocalStorageAdapter.test.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LocalStorageAdapter.test.d.ts","sourceRoot":"","sources":["../../src/auth/LocalStorageAdapter.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tests for the deprecated LocalStorageAdapter.
|
|
3
|
+
*
|
|
4
|
+
* Behavior must match the previous default (read/write/remove via
|
|
5
|
+
* `window.localStorage`) plus a one-shot `console.warn` on the first
|
|
6
|
+
* `setItem`. The warn flag is module-level (so a single session
|
|
7
|
+
* surfaces one warning even if multiple adapters are constructed);
|
|
8
|
+
* tests reload the module via `vi.resetModules()` to reset that flag
|
|
9
|
+
* per-test without changing production behavior.
|
|
10
|
+
*/
|
|
11
|
+
import { describe, it, expect, beforeEach, vi, afterEach } from 'vitest';
|
|
12
|
+
describe('LocalStorageAdapter (deprecated)', () => {
|
|
13
|
+
beforeEach(() => {
|
|
14
|
+
window.localStorage.clear();
|
|
15
|
+
vi.restoreAllMocks();
|
|
16
|
+
vi.resetModules();
|
|
17
|
+
});
|
|
18
|
+
afterEach(() => {
|
|
19
|
+
window.localStorage.clear();
|
|
20
|
+
});
|
|
21
|
+
it('roundtrips a value through window.localStorage', async () => {
|
|
22
|
+
const { LocalStorageAdapter } = await import('./AuthStorageAdapter');
|
|
23
|
+
const adapter = new LocalStorageAdapter();
|
|
24
|
+
adapter.setItem('k', 'v');
|
|
25
|
+
expect(adapter.getItem('k')).toBe('v');
|
|
26
|
+
adapter.removeItem('k');
|
|
27
|
+
expect(adapter.getItem('k')).toBeNull();
|
|
28
|
+
});
|
|
29
|
+
it('emits a one-shot console.warn on first setItem', async () => {
|
|
30
|
+
var _a, _b;
|
|
31
|
+
const warn = vi.spyOn(console, 'warn').mockImplementation(() => { });
|
|
32
|
+
const { LocalStorageAdapter } = await import('./AuthStorageAdapter');
|
|
33
|
+
const adapter = new LocalStorageAdapter();
|
|
34
|
+
adapter.setItem('first', 'a');
|
|
35
|
+
adapter.setItem('second', 'b');
|
|
36
|
+
adapter.setItem('third', 'c');
|
|
37
|
+
expect(warn).toHaveBeenCalledTimes(1);
|
|
38
|
+
const message = String((_b = (_a = warn.mock.calls[0]) === null || _a === void 0 ? void 0 : _a[0]) !== null && _b !== void 0 ? _b : '');
|
|
39
|
+
expect(message).toContain('LocalStorageAdapter');
|
|
40
|
+
expect(message).toContain('deprecated');
|
|
41
|
+
expect(message).toContain('XSS');
|
|
42
|
+
});
|
|
43
|
+
it('does NOT warn on getItem or removeItem', async () => {
|
|
44
|
+
const warn = vi.spyOn(console, 'warn').mockImplementation(() => { });
|
|
45
|
+
const { LocalStorageAdapter } = await import('./AuthStorageAdapter');
|
|
46
|
+
const adapter = new LocalStorageAdapter();
|
|
47
|
+
adapter.getItem('k');
|
|
48
|
+
adapter.removeItem('k');
|
|
49
|
+
expect(warn).not.toHaveBeenCalled();
|
|
50
|
+
});
|
|
51
|
+
it('returns null for missing keys', async () => {
|
|
52
|
+
const { LocalStorageAdapter } = await import('./AuthStorageAdapter');
|
|
53
|
+
const adapter = new LocalStorageAdapter();
|
|
54
|
+
expect(adapter.getItem('absent')).toBeNull();
|
|
55
|
+
});
|
|
56
|
+
it('is SSR-safe (no-op when window is undefined)', async () => {
|
|
57
|
+
const { LocalStorageAdapter } = await import('./AuthStorageAdapter');
|
|
58
|
+
const originalWindow = globalThis.window;
|
|
59
|
+
delete globalThis.window;
|
|
60
|
+
try {
|
|
61
|
+
const adapter = new LocalStorageAdapter();
|
|
62
|
+
expect(() => adapter.setItem('k', 'v')).not.toThrow();
|
|
63
|
+
expect(() => adapter.removeItem('k')).not.toThrow();
|
|
64
|
+
expect(adapter.getItem('k')).toBeNull();
|
|
65
|
+
}
|
|
66
|
+
finally {
|
|
67
|
+
globalThis.window = originalWindow;
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
//# sourceMappingURL=LocalStorageAdapter.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LocalStorageAdapter.test.js","sourceRoot":"","sources":["../../src/auth/LocalStorageAdapter.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authExports.test.d.ts","sourceRoot":"","sources":["../../src/auth/authExports.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { describe, it, expect } from 'vitest';
|
|
2
|
+
import { renderHook } from '@testing-library/react';
|
|
3
|
+
import { useMkAuth, MkAuthProvider } from '../index';
|
|
4
|
+
describe('Public API Auth Exports (mk-web)', () => {
|
|
5
|
+
it('should export the new useMkAuth hook instead of the legacy one', () => {
|
|
6
|
+
expect(useMkAuth).toBeDefined();
|
|
7
|
+
// El hook nuevo lanza "MkAuthProvider missing" si se invoca fuera de un proveedor.
|
|
8
|
+
// El hook viejo lanzaba "useMkAuth debe usarse dentro de MkAuthProvider".
|
|
9
|
+
expect(() => renderHook(() => useMkAuth())).toThrowError(/MkAuthProvider missing/);
|
|
10
|
+
});
|
|
11
|
+
it('should export the new MkAuthProvider', () => {
|
|
12
|
+
expect(MkAuthProvider).toBeDefined();
|
|
13
|
+
});
|
|
14
|
+
});
|
|
15
|
+
//# sourceMappingURL=authExports.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authExports.test.js","sourceRoot":"","sources":["../../src/auth/authExports.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAErD,QAAQ,CAAC,kCAAkC,EAAE,GAAG,EAAE;IAC9C,EAAE,CAAC,gEAAgE,EAAE,GAAG,EAAE;QACtE,MAAM,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;QAChC,mFAAmF;QACnF,0EAA0E;QAC1E,MAAM,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,wBAAwB,CAAC,CAAC;IACvF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC5C,MAAM,CAAC,cAAc,CAAC,CAAC,WAAW,EAAE,CAAC;IACzC,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MkAccordion.stories.test.d.ts","sourceRoot":"","sources":["../../src/components/MkAccordion.stories.test.tsx"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* Smoke snapshot for MkAccordion — required by R-MK-002.
|
|
4
|
+
*/
|
|
5
|
+
import { describe, it, expect, afterEach } from 'vitest';
|
|
6
|
+
import { render, cleanup } from '@testing-library/react';
|
|
7
|
+
import { MkAccordion } from './MkAccordion';
|
|
8
|
+
describe('MkAccordion story smoke', () => {
|
|
9
|
+
afterEach(cleanup);
|
|
10
|
+
it('renders with items', () => {
|
|
11
|
+
const { container } = render(_jsx(MkAccordion, { items: [
|
|
12
|
+
{ key: 'a', title: 'First', content: _jsx("p", { children: "First content" }) },
|
|
13
|
+
{ key: 'b', title: 'Second', content: _jsx("p", { children: "Second content" }) },
|
|
14
|
+
] }));
|
|
15
|
+
expect(container.firstChild).toMatchSnapshot();
|
|
16
|
+
});
|
|
17
|
+
});
|
|
18
|
+
//# sourceMappingURL=MkAccordion.stories.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MkAccordion.stories.test.js","sourceRoot":"","sources":["../../src/components/MkAccordion.stories.test.tsx"],"names":[],"mappings":";AAAA;;GAEG;AACH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACzD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;IACrC,SAAS,CAAC,OAAO,CAAC,CAAC;IAEnB,EAAE,CAAC,oBAAoB,EAAE,GAAG,EAAE;QAC1B,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CACxB,KAAC,WAAW,IACR,KAAK,EAAE;gBACH,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,wCAAoB,EAAE;gBAC3D,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,yCAAqB,EAAE;aAChE,GACH,CACL,CAAC;QACF,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,eAAe,EAAE,CAAC;IACnD,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MkAlert.stories.test.d.ts","sourceRoot":"","sources":["../../src/components/MkAlert.stories.test.tsx"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* Smoke snapshot for MkAlert — generates `__snapshots__/MkAlert.stories.snap`.
|
|
4
|
+
* Required by R-MK-002 stories coverage rule (mk:lint:stories).
|
|
5
|
+
*/
|
|
6
|
+
import { describe, it, expect, afterEach } from 'vitest';
|
|
7
|
+
import { render, cleanup } from '@testing-library/react';
|
|
8
|
+
import { MkAlert } from './MkAlert';
|
|
9
|
+
describe('MkAlert story smoke', () => {
|
|
10
|
+
afterEach(cleanup);
|
|
11
|
+
it('renders warning variant', () => {
|
|
12
|
+
const { container } = render(_jsx(MkAlert, { variant: "warning", title: "Atenci\u00F3n", children: "Esta acci\u00F3n no se puede deshacer." }));
|
|
13
|
+
expect(container.firstChild).toMatchSnapshot();
|
|
14
|
+
});
|
|
15
|
+
});
|
|
16
|
+
//# sourceMappingURL=MkAlert.stories.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MkAlert.stories.test.js","sourceRoot":"","sources":["../../src/components/MkAlert.stories.test.tsx"],"names":[],"mappings":";AAAA;;;GAGG;AACH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACzD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IACjC,SAAS,CAAC,OAAO,CAAC,CAAC;IAEnB,EAAE,CAAC,yBAAyB,EAAE,GAAG,EAAE;QAC/B,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CACxB,KAAC,OAAO,IAAC,OAAO,EAAC,SAAS,EAAC,KAAK,EAAC,eAAU,uDAEjC,CACb,CAAC;QACF,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,eAAe,EAAE,CAAC;IACnD,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MkAvatar.stories.test.d.ts","sourceRoot":"","sources":["../../src/components/MkAvatar.stories.test.tsx"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* Smoke snapshot for MkAvatar — generates `__snapshots__/MkAvatar.stories.snap`.
|
|
4
|
+
* Required by R-MK-002 stories coverage rule (mk:lint:stories).
|
|
5
|
+
*/
|
|
6
|
+
import { describe, it, expect, afterEach } from 'vitest';
|
|
7
|
+
import { render, cleanup } from '@testing-library/react';
|
|
8
|
+
import { MkAvatar } from './MkAvatar';
|
|
9
|
+
describe('MkAvatar story smoke', () => {
|
|
10
|
+
afterEach(cleanup);
|
|
11
|
+
it('renders with initials', () => {
|
|
12
|
+
const { container } = render(_jsx(MkAvatar, { name: "Mario Guzman" }));
|
|
13
|
+
expect(container.firstChild).toMatchSnapshot();
|
|
14
|
+
});
|
|
15
|
+
});
|
|
16
|
+
//# sourceMappingURL=MkAvatar.stories.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MkAvatar.stories.test.js","sourceRoot":"","sources":["../../src/components/MkAvatar.stories.test.tsx"],"names":[],"mappings":";AAAA;;;GAGG;AACH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACzD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IAClC,SAAS,CAAC,OAAO,CAAC,CAAC;IAEnB,EAAE,CAAC,uBAAuB,EAAE,GAAG,EAAE;QAC7B,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC,KAAC,QAAQ,IAAC,IAAI,EAAC,cAAc,GAAG,CAAC,CAAC;QAC/D,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,eAAe,EAAE,CAAC;IACnD,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MkBadge.stories.test.d.ts","sourceRoot":"","sources":["../../src/components/MkBadge.stories.test.tsx"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* Smoke snapshot for MkBadge — generates `__snapshots__/MkBadge.stories.snap`.
|
|
4
|
+
* Required by R-MK-002 stories coverage rule (mk:lint:stories).
|
|
5
|
+
*/
|
|
6
|
+
import { describe, it, expect, afterEach } from 'vitest';
|
|
7
|
+
import { render, cleanup } from '@testing-library/react';
|
|
8
|
+
import { MkBadge } from './MkBadge';
|
|
9
|
+
describe('MkBadge story smoke', () => {
|
|
10
|
+
afterEach(cleanup);
|
|
11
|
+
it('renders with dot', () => {
|
|
12
|
+
const { container } = render(_jsx(MkBadge, { variant: "success", dot: true, children: "Live" }));
|
|
13
|
+
expect(container.firstChild).toMatchSnapshot();
|
|
14
|
+
});
|
|
15
|
+
});
|
|
16
|
+
//# sourceMappingURL=MkBadge.stories.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MkBadge.stories.test.js","sourceRoot":"","sources":["../../src/components/MkBadge.stories.test.tsx"],"names":[],"mappings":";AAAA;;;GAGG;AACH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACzD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IACjC,SAAS,CAAC,OAAO,CAAC,CAAC;IAEnB,EAAE,CAAC,kBAAkB,EAAE,GAAG,EAAE;QACxB,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC,KAAC,OAAO,IAAC,OAAO,EAAC,SAAS,EAAC,GAAG,2BAAe,CAAC,CAAC;QAC5E,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,eAAe,EAAE,CAAC;IACnD,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MkButton.test.d.ts","sourceRoot":"","sources":["../../src/components/MkButton.test.tsx"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { describe, it, expect, vi } from 'vitest';
|
|
3
|
+
import { render, screen, fireEvent } from '@testing-library/react';
|
|
4
|
+
import { MkButton } from '../components/MkButton';
|
|
5
|
+
describe('MkButton', () => {
|
|
6
|
+
it('renders with correct text', () => {
|
|
7
|
+
render(_jsx(MkButton, { children: "Click me" }));
|
|
8
|
+
const button = screen.getByRole('button');
|
|
9
|
+
expect(button.textContent).toBe('Click me');
|
|
10
|
+
});
|
|
11
|
+
it('calls onClick when clicked', () => {
|
|
12
|
+
const handleClick = vi.fn();
|
|
13
|
+
render(_jsx(MkButton, { onClick: handleClick, children: "Click me" }));
|
|
14
|
+
fireEvent.click(screen.getByRole('button'));
|
|
15
|
+
expect(handleClick).toHaveBeenCalledTimes(1);
|
|
16
|
+
});
|
|
17
|
+
it('does not call onClick when disabled', () => {
|
|
18
|
+
const handleClick = vi.fn();
|
|
19
|
+
render(_jsx(MkButton, { disabled: true, onClick: handleClick, children: "Click me" }));
|
|
20
|
+
fireEvent.click(screen.getByRole('button'));
|
|
21
|
+
expect(handleClick).not.toHaveBeenCalled();
|
|
22
|
+
});
|
|
23
|
+
it('applies variant class correctly', () => {
|
|
24
|
+
const { container } = render(_jsx(MkButton, { variant: "outline", children: "Outline" }));
|
|
25
|
+
const button = container.querySelector('button');
|
|
26
|
+
expect(button === null || button === void 0 ? void 0 : button.className).toMatch(/outline/);
|
|
27
|
+
});
|
|
28
|
+
it('shows loading spinner and disables button', () => {
|
|
29
|
+
render(_jsx(MkButton, { loading: true, children: "Click me" }));
|
|
30
|
+
const button = screen.getByRole('button');
|
|
31
|
+
expect(button === null || button === void 0 ? void 0 : button.disabled).toBe(true);
|
|
32
|
+
// When loading, children are replaced with spinner
|
|
33
|
+
expect(button === null || button === void 0 ? void 0 : button.querySelector('span')).not.toBeNull();
|
|
34
|
+
});
|
|
35
|
+
it('does not render children when loading', () => {
|
|
36
|
+
render(_jsx(MkButton, { loading: true, children: "Submit Form" }));
|
|
37
|
+
// When loading, the spinner replaces the children
|
|
38
|
+
expect(screen.queryByText('Submit Form')).toBeNull();
|
|
39
|
+
});
|
|
40
|
+
it('applies custom className', () => {
|
|
41
|
+
const { container } = render(_jsx(MkButton, { className: "custom-class", children: "Test" }));
|
|
42
|
+
const button = container.querySelector('button');
|
|
43
|
+
expect(button === null || button === void 0 ? void 0 : button.className).toContain('custom-class');
|
|
44
|
+
});
|
|
45
|
+
it('supports error variant', () => {
|
|
46
|
+
const { container } = render(_jsx(MkButton, { variant: "error", children: "Delete" }));
|
|
47
|
+
const button = container.querySelector('button');
|
|
48
|
+
expect(button === null || button === void 0 ? void 0 : button.className).toMatch(/error/);
|
|
49
|
+
});
|
|
50
|
+
it('supports ghost variant', () => {
|
|
51
|
+
const { container } = render(_jsx(MkButton, { variant: "ghost", children: "Ghost" }));
|
|
52
|
+
const button = container.querySelector('button');
|
|
53
|
+
expect(button === null || button === void 0 ? void 0 : button.className).toMatch(/ghost/);
|
|
54
|
+
});
|
|
55
|
+
});
|
|
56
|
+
//# sourceMappingURL=MkButton.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MkButton.test.js","sourceRoot":"","sources":["../../src/components/MkButton.test.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MkCheck.stories.test.d.ts","sourceRoot":"","sources":["../../src/components/MkCheck.stories.test.tsx"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* Smoke snapshot for MkCheck — generates `__snapshots__/MkCheck.stories.snap`.
|
|
4
|
+
* Required by R-MK-002 stories coverage rule (mk:lint:stories).
|
|
5
|
+
*/
|
|
6
|
+
import { describe, it, expect, afterEach } from 'vitest';
|
|
7
|
+
import { render, cleanup } from '@testing-library/react';
|
|
8
|
+
import { MkCheck } from './MkCheck';
|
|
9
|
+
describe('MkCheck story smoke', () => {
|
|
10
|
+
afterEach(cleanup);
|
|
11
|
+
it('renders checked', () => {
|
|
12
|
+
const { container } = render(_jsx(MkCheck, { label: "I agree", checked: true }));
|
|
13
|
+
expect(container.firstChild).toMatchSnapshot();
|
|
14
|
+
});
|
|
15
|
+
});
|
|
16
|
+
//# sourceMappingURL=MkCheck.stories.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MkCheck.stories.test.js","sourceRoot":"","sources":["../../src/components/MkCheck.stories.test.tsx"],"names":[],"mappings":";AAAA;;;GAGG;AACH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACzD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IACjC,SAAS,CAAC,OAAO,CAAC,CAAC;IAEnB,EAAE,CAAC,iBAAiB,EAAE,GAAG,EAAE;QACvB,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC,KAAC,OAAO,IAAC,KAAK,EAAC,SAAS,EAAC,OAAO,SAAG,CAAC,CAAC;QAClE,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,eAAe,EAAE,CAAC;IACnD,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MkDatePicker.stories.test.d.ts","sourceRoot":"","sources":["../../src/components/MkDatePicker.stories.test.tsx"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* Smoke snapshot for MkDatePicker — generates `__snapshots__/MkDatePicker.stories.snap`.
|
|
4
|
+
* Required by R-MK-002 stories coverage rule (mk:lint:stories).
|
|
5
|
+
*/
|
|
6
|
+
import { describe, it, expect, afterEach } from 'vitest';
|
|
7
|
+
import { render, cleanup } from '@testing-library/react';
|
|
8
|
+
import { MkDatePicker } from './MkDatePicker';
|
|
9
|
+
describe('MkDatePicker story smoke', () => {
|
|
10
|
+
afterEach(cleanup);
|
|
11
|
+
it('renders with value', () => {
|
|
12
|
+
const { container } = render(_jsx(MkDatePicker, { label: "Birthday", value: "1990-04-15" }));
|
|
13
|
+
expect(container.firstChild).toMatchSnapshot();
|
|
14
|
+
});
|
|
15
|
+
});
|
|
16
|
+
//# sourceMappingURL=MkDatePicker.stories.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MkDatePicker.stories.test.js","sourceRoot":"","sources":["../../src/components/MkDatePicker.stories.test.tsx"],"names":[],"mappings":";AAAA;;;GAGG;AACH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACzD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;IACtC,SAAS,CAAC,OAAO,CAAC,CAAC;IAEnB,EAAE,CAAC,oBAAoB,EAAE,GAAG,EAAE;QAC1B,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CACxB,KAAC,YAAY,IAAC,KAAK,EAAC,UAAU,EAAC,KAAK,EAAC,YAAY,GAAG,CACvD,CAAC;QACF,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,eAAe,EAAE,CAAC;IACnD,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MkDivider.stories.test.d.ts","sourceRoot":"","sources":["../../src/components/MkDivider.stories.test.tsx"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* Smoke snapshot for MkDivider — required by R-MK-002 (mk:lint:stories).
|
|
4
|
+
*/
|
|
5
|
+
import { describe, it, expect, afterEach } from 'vitest';
|
|
6
|
+
import { render, cleanup } from '@testing-library/react';
|
|
7
|
+
import { MkDivider } from './MkDivider';
|
|
8
|
+
describe('MkDivider story smoke', () => {
|
|
9
|
+
afterEach(cleanup);
|
|
10
|
+
it('renders with label', () => {
|
|
11
|
+
const { container } = render(_jsx(MkDivider, { label: "or continue with" }));
|
|
12
|
+
expect(container.firstChild).toMatchSnapshot();
|
|
13
|
+
});
|
|
14
|
+
});
|
|
15
|
+
//# sourceMappingURL=MkDivider.stories.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MkDivider.stories.test.js","sourceRoot":"","sources":["../../src/components/MkDivider.stories.test.tsx"],"names":[],"mappings":";AAAA;;GAEG;AACH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACzD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACnC,SAAS,CAAC,OAAO,CAAC,CAAC;IAEnB,EAAE,CAAC,oBAAoB,EAAE,GAAG,EAAE;QAC1B,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC,KAAC,SAAS,IAAC,KAAK,EAAC,kBAAkB,GAAG,CAAC,CAAC;QACrE,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,eAAe,EAAE,CAAC;IACnD,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MkDropDown.stories.test.d.ts","sourceRoot":"","sources":["../../src/components/MkDropDown.stories.test.tsx"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* Smoke snapshot for MkDropDown — required by R-MK-002.
|
|
4
|
+
*/
|
|
5
|
+
import { describe, it, expect, afterEach, vi } from 'vitest';
|
|
6
|
+
import { render, cleanup } from '@testing-library/react';
|
|
7
|
+
import { MkDropDown } from './MkDropDown';
|
|
8
|
+
describe('MkDropDown story smoke', () => {
|
|
9
|
+
afterEach(cleanup);
|
|
10
|
+
it('renders with options', () => {
|
|
11
|
+
const { container } = render(_jsx(MkDropDown, { options: [
|
|
12
|
+
{ value: 'edit', label: 'Edit' },
|
|
13
|
+
{ value: 'delete', label: 'Delete' },
|
|
14
|
+
], onSelect: vi.fn() }));
|
|
15
|
+
expect(container.firstChild).toMatchSnapshot();
|
|
16
|
+
});
|
|
17
|
+
});
|
|
18
|
+
//# sourceMappingURL=MkDropDown.stories.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MkDropDown.stories.test.js","sourceRoot":"","sources":["../../src/components/MkDropDown.stories.test.tsx"],"names":[],"mappings":";AAAA;;GAEG;AACH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;IACpC,SAAS,CAAC,OAAO,CAAC,CAAC;IAEnB,EAAE,CAAC,sBAAsB,EAAE,GAAG,EAAE;QAC5B,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CACxB,KAAC,UAAU,IACP,OAAO,EAAE;gBACL,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;gBAChC,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;aACvC,EACD,QAAQ,EAAE,EAAE,CAAC,EAAE,EAAE,GACnB,CACL,CAAC;QACF,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,eAAe,EAAE,CAAC;IACnD,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MkEmptyState.stories.test.d.ts","sourceRoot":"","sources":["../../src/components/MkEmptyState.stories.test.tsx"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* Smoke snapshot for MkEmptyState — required by R-MK-002.
|
|
4
|
+
*/
|
|
5
|
+
import { describe, it, expect, afterEach } from 'vitest';
|
|
6
|
+
import { render, cleanup } from '@testing-library/react';
|
|
7
|
+
import { MkEmptyState } from './MkEmptyState';
|
|
8
|
+
describe('MkEmptyState story smoke', () => {
|
|
9
|
+
afterEach(cleanup);
|
|
10
|
+
it('renders with title and description', () => {
|
|
11
|
+
const { container } = render(_jsx(MkEmptyState, { title: "No hay datos", description: "Crea el primer registro para empezar.", action: _jsx("button", { children: "Crear" }) }));
|
|
12
|
+
expect(container.firstChild).toMatchSnapshot();
|
|
13
|
+
});
|
|
14
|
+
});
|
|
15
|
+
//# sourceMappingURL=MkEmptyState.stories.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MkEmptyState.stories.test.js","sourceRoot":"","sources":["../../src/components/MkEmptyState.stories.test.tsx"],"names":[],"mappings":";AAAA;;GAEG;AACH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACzD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;IACtC,SAAS,CAAC,OAAO,CAAC,CAAC;IAEnB,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAC1C,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CACxB,KAAC,YAAY,IACT,KAAK,EAAC,cAAc,EACpB,WAAW,EAAC,uCAAuC,EACnD,MAAM,EAAE,qCAAsB,GAChC,CACL,CAAC;QACF,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,eAAe,EAAE,CAAC;IACnD,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tests for MkFileUpload object-URL lifecycle.
|
|
3
|
+
*
|
|
4
|
+
* Regression coverage for the leak fixed in v1.3.0: every
|
|
5
|
+
* `URL.createObjectURL` call used to be dropped on the floor, so
|
|
6
|
+
* picking a new set of images (single-select mode) or unmounting
|
|
7
|
+
* with files selected kept the underlying blobs alive in the browser.
|
|
8
|
+
*
|
|
9
|
+
* jsdom 24 does NOT implement `URL.createObjectURL` /
|
|
10
|
+
* `URL.revokeObjectURL` (they are browser-only WHATWG URL extensions),
|
|
11
|
+
* so we stub them on the jsdom `URL` global per test. In a real
|
|
12
|
+
* browser the native implementations do the right thing — these
|
|
13
|
+
* tests just confirm we call them.
|
|
14
|
+
*/
|
|
15
|
+
export {};
|
|
16
|
+
//# sourceMappingURL=MkFileUpload-leak.test.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MkFileUpload-leak.test.d.ts","sourceRoot":"","sources":["../../src/components/MkFileUpload-leak.test.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG"}
|