@t1mmen/srtd 0.4.2 → 0.4.3
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.md +1 -1
- package/dist/__tests__/clear.test.d.ts +1 -0
- package/dist/__tests__/clear.test.js +11 -0
- package/dist/__tests__/clear.test.js.map +1 -0
- package/dist/__tests__/init.test.d.ts +1 -0
- package/dist/__tests__/init.test.js +28 -0
- package/dist/__tests__/init.test.js.map +1 -0
- package/dist/__tests__/register.test.d.ts +1 -0
- package/dist/__tests__/register.test.js +9 -0
- package/dist/__tests__/register.test.js.map +1 -0
- package/dist/__tests__/watch.test.js +1 -6
- package/dist/__tests__/watch.test.js.map +1 -1
- package/dist/commands/_app.js +1 -1
- package/dist/commands/_app.js.map +1 -1
- package/dist/commands/clear.js +2 -3
- package/dist/commands/clear.js.map +1 -1
- package/dist/lib/templateManager.test.js +111 -98
- package/dist/lib/templateManager.test.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
> Live-reloading SQL templates for [Supabase](https://supabase.com) projects. DX supercharged! 🚀
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+

|
|
8
8
|
[](https://opensource.org/licenses/MIT)
|
|
9
9
|
[](https://github.com/t1mmen/srtd/actions/workflows/ci.yml)
|
|
10
10
|
[](https://codecov.io/gh/t1mmen/srtd)
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { render } from 'ink-testing-library';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { expect, it } from 'vitest';
|
|
4
|
+
import Clear from '../commands/clear.js';
|
|
5
|
+
it('renders clear command', () => {
|
|
6
|
+
const { lastFrame } = render(React.createElement(Clear, null));
|
|
7
|
+
expect(lastFrame()).toContain('Clear local build logs');
|
|
8
|
+
expect(lastFrame()).toContain('Clear shared build logs');
|
|
9
|
+
expect(lastFrame()).toContain('Reset config');
|
|
10
|
+
});
|
|
11
|
+
//# sourceMappingURL=clear.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clear.test.js","sourceRoot":"","sources":["../../src/__tests__/clear.test.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,KAAK,MAAM,sBAAsB,CAAC;AAEzC,EAAE,CAAC,uBAAuB,EAAE,GAAG,EAAE;IAC/B,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC,oBAAC,KAAK,OAAG,CAAC,CAAC;IACxC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAC;IACxD,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,yBAAyB,CAAC,CAAC;IACzD,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;AAChD,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { afterEach, beforeEach, describe } from 'node:test';
|
|
2
|
+
import { render } from 'ink-testing-library';
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import { expect, it, vi } from 'vitest';
|
|
5
|
+
import Init from '../commands/init.js';
|
|
6
|
+
const mockFS = () => {
|
|
7
|
+
vi.mock('node:fs/promises', () => ({
|
|
8
|
+
default: {
|
|
9
|
+
readFile: vi.fn().mockResolvedValue(''),
|
|
10
|
+
writeFile: vi.fn().mockResolvedValue(undefined),
|
|
11
|
+
mkdir: vi.fn().mockResolvedValue(undefined),
|
|
12
|
+
unlink: vi.fn().mockResolvedValue(undefined),
|
|
13
|
+
},
|
|
14
|
+
}));
|
|
15
|
+
};
|
|
16
|
+
describe('Init Command', () => {
|
|
17
|
+
beforeEach(() => {
|
|
18
|
+
mockFS();
|
|
19
|
+
});
|
|
20
|
+
afterEach(() => {
|
|
21
|
+
vi.clearAllMocks();
|
|
22
|
+
});
|
|
23
|
+
it('renders init command', () => {
|
|
24
|
+
const { lastFrame } = render(React.createElement(Init, null));
|
|
25
|
+
expect(lastFrame()).toBe('');
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
//# sourceMappingURL=init.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.test.js","sourceRoot":"","sources":["../../src/__tests__/init.test.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,IAAI,MAAM,qBAAqB,CAAC;AAEvC,MAAM,MAAM,GAAG,GAAG,EAAE;IAClB,EAAE,CAAC,IAAI,CAAC,kBAAkB,EAAE,GAAG,EAAE,CAAC,CAAC;QACjC,OAAO,EAAE;YACP,QAAQ,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,EAAE,CAAC;YACvC,SAAS,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC;YAC/C,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC;YAC3C,MAAM,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC;SAC7C;KACF,CAAC,CAAC,CAAC;AACN,CAAC,CAAC;AAEF,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,UAAU,CAAC,GAAG,EAAE;QACd,MAAM,EAAE,CAAC;IACX,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,EAAE,CAAC,aAAa,EAAE,CAAC;IACrB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sBAAsB,EAAE,GAAG,EAAE;QAC9B,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC,oBAAC,IAAI,OAAG,CAAC,CAAC;QACvC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { render } from 'ink-testing-library';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { expect, it } from 'vitest';
|
|
4
|
+
import Register from '../commands/register.js';
|
|
5
|
+
it('renders init command', () => {
|
|
6
|
+
const { lastFrame } = render(React.createElement(Register, { args: undefined }));
|
|
7
|
+
expect(lastFrame()).toContain('Register templates');
|
|
8
|
+
});
|
|
9
|
+
//# sourceMappingURL=register.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register.test.js","sourceRoot":"","sources":["../../src/__tests__/register.test.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,QAAQ,MAAM,yBAAyB,CAAC;AAE/C,EAAE,CAAC,sBAAsB,EAAE,GAAG,EAAE;IAC9B,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC,oBAAC,QAAQ,IAAC,IAAI,EAAE,SAAS,GAAI,CAAC,CAAC;IAC5D,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;AACtD,CAAC,CAAC,CAAC"}
|
|
@@ -16,14 +16,9 @@ describe('Watch Command', () => {
|
|
|
16
16
|
});
|
|
17
17
|
test('renders initial state with no templates', async () => {
|
|
18
18
|
const { lastFrame } = render(React.createElement(Watch, null));
|
|
19
|
-
await wait(
|
|
19
|
+
await wait(200); // Allow time for UI to render and DB to initialize
|
|
20
20
|
expect(lastFrame()).toContain('Watch Mode');
|
|
21
21
|
expect(lastFrame()).toContain('No templates found');
|
|
22
22
|
});
|
|
23
|
-
test('renders with templates', async () => {
|
|
24
|
-
const { lastFrame } = render(React.createElement(Watch, null));
|
|
25
|
-
await wait(100); // Allow time for UI to render and DB to initialize
|
|
26
|
-
expect(lastFrame()).toContain('Watch Mode');
|
|
27
|
-
});
|
|
28
23
|
});
|
|
29
24
|
//# sourceMappingURL=watch.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"watch.test.js","sourceRoot":"","sources":["../../src/__tests__/watch.test.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAChE,OAAO,KAAK,MAAM,sBAAsB,CAAC;AAEzC,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAC,cAAc,EAAC,EAAE;IACpC,MAAM,MAAM,GAAG,CAAC,MAAM,cAAc,EAAE,CAAyB,CAAC;IAChE,OAAO;QACL,GAAG,MAAM;QACT,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;KAClC,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,MAAM,IAAI,GAAG,CAAC,EAAU,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAE7E,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,UAAU,CAAC,GAAG,EAAE;QACd,EAAE,CAAC,aAAa,EAAE,CAAC;IACrB,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;QACzD,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC,oBAAC,KAAK,OAAG,CAAC,CAAC;QACxC,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,mDAAmD;QAEpE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QAC5C,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"watch.test.js","sourceRoot":"","sources":["../../src/__tests__/watch.test.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAChE,OAAO,KAAK,MAAM,sBAAsB,CAAC;AAEzC,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAC,cAAc,EAAC,EAAE;IACpC,MAAM,MAAM,GAAG,CAAC,MAAM,cAAc,EAAE,CAAyB,CAAC;IAChE,OAAO;QACL,GAAG,MAAM;QACT,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;KAClC,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,MAAM,IAAI,GAAG,CAAC,EAAU,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAE7E,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,UAAU,CAAC,GAAG,EAAE;QACd,EAAE,CAAC,aAAa,EAAE,CAAC;IACrB,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;QACzD,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC,oBAAC,KAAK,OAAG,CAAC,CAAC;QACxC,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,mDAAmD;QAEpE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QAC5C,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/dist/commands/_app.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
// src/commands/_app.tsx
|
|
2
2
|
import { Alert, ThemeProvider } from '@inkjs/ui';
|
|
3
|
-
import Debug from 'components/Debug.js';
|
|
4
3
|
import { Box, Static, Text } from 'ink';
|
|
5
4
|
import React from 'react';
|
|
5
|
+
import Debug from '../components/Debug.js';
|
|
6
6
|
import { COLOR_ERROR, customTheme } from '../components/customTheme.js';
|
|
7
7
|
import { useDatabaseConnection } from '../hooks/useDatabaseConnection.js';
|
|
8
8
|
export default function App({ Component, commandProps }) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_app.js","sourceRoot":"","sources":["../../src/commands/_app.tsx"],"names":[],"mappings":"AAAA,wBAAwB;AACxB,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,
|
|
1
|
+
{"version":3,"file":"_app.js","sourceRoot":"","sources":["../../src/commands/_app.tsx"],"names":[],"mappings":"AAAA,wBAAwB;AACxB,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAExC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,MAAM,wBAAwB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAE1E,MAAM,CAAC,OAAO,UAAU,GAAG,CAAC,EAAE,SAAS,EAAE,YAAY,EAAY;IAC/D,MAAM,EAAE,KAAK,EAAE,GAAG,qBAAqB,EAAE,CAAC;IAE1C,OAAO,CACL,oBAAC,aAAa,IAAC,KAAK,EAAE,WAAW;QAC/B,oBAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,OAAO,EAAE,CAAC;YACnC,CAAC,CAAC,KAAK,IAAI,CACV,oBAAC,MAAM,IAAC,KAAK,EAAE,CAAC,KAAK,CAAC,IACnB,KAAK,CAAC,EAAE,CAAC,CACR,oBAAC,GAAG,IAAC,GAAG,EAAE,KAAK;gBACb,oBAAC,KAAK,IAAC,OAAO,EAAC,OAAO;oBACpB,oBAAC,IAAI,IAAC,IAAI,QAAC,KAAK,EAAE,WAAW;;wBACpB,GAAG,CACL;oBACN,KAAK,CACA,CACJ,CACP,CACM,CACV;YACD,oBAAC,SAAS,OAAK,YAAY,GAAI;YAC/B,oBAAC,KAAK,OAAG,CACL,CACQ,CACjB,CAAC;AACJ,CAAC;AAED,sBAAsB;AACtB,MAAM,qBAAqB,GAAG,aAAa,CAAC;AAC5C,MAAM,qBAAqB,GAAG,aAAa,CAAC;AAC5C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;AAE5C,MAAM,OAAO,GAAG,GAAG,EAAE;IACnB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;AAC9C,CAAC,CAAC;AAEF,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC"}
|
package/dist/commands/clear.js
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { Select, Spinner } from '@inkjs/ui';
|
|
2
|
-
import Branding from 'components/Branding.js';
|
|
3
|
-
import Quittable from 'components/Quittable.js';
|
|
4
|
-
// commands/build.tsx
|
|
5
2
|
import { Box, useApp } from 'ink';
|
|
6
3
|
import React from 'react';
|
|
4
|
+
import Branding from '../components/Branding.js';
|
|
5
|
+
import Quittable from '../components/Quittable.js';
|
|
7
6
|
import { clearBuildLogs, resetConfig } from '../utils/config.js';
|
|
8
7
|
const clearOptions = [
|
|
9
8
|
{ label: 'Clear local build logs', value: 'local' },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clear.js","sourceRoot":"","sources":["../../src/commands/clear.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,
|
|
1
|
+
{"version":3,"file":"clear.js","sourceRoot":"","sources":["../../src/commands/clear.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AAClC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,QAAQ,MAAM,2BAA2B,CAAC;AACjD,OAAO,SAAS,MAAM,4BAA4B,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjE,MAAM,YAAY,GAAG;IACnB,EAAE,KAAK,EAAE,wBAAwB,EAAE,KAAK,EAAE,OAAO,EAAE;IACnD,EAAE,KAAK,EAAE,yBAAyB,EAAE,KAAK,EAAE,QAAQ,EAAE;IACrD,EAAE,KAAK,EAAE,2CAA2C,EAAE,KAAK,EAAE,YAAY,EAAE;CAC5E,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,KAAK;IAC3B,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,CAAC;IAC1B,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE5D,MAAM,YAAY,GAAG,KAAK,EAAE,KAAa,EAAE,EAAE;QAC3C,IAAI,CAAC;YACH,cAAc,CAAC,IAAI,CAAC,CAAC;YACrB,QAAQ,KAAK,EAAE,CAAC;gBACd,KAAK,OAAO;oBACV,MAAM,cAAc,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC;oBAC7C,MAAM;gBACR,KAAK,QAAQ;oBACX,MAAM,cAAc,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAC;oBAC9C,MAAM;gBACR,KAAK,YAAY;oBACf,MAAM,WAAW,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;oBACjC,MAAM,cAAc,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,CAAC;oBAC5C,MAAM;gBACR;oBACE,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;YACtC,CAAC;YACD,IAAI,EAAE,CAAC;QACT,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC,CAAC;QACzE,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,CACL;QACE,oBAAC,QAAQ,IAAC,QAAQ,EAAC,0BAAgB,GAAG;QACtC,oBAAC,MAAM,IAAC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,YAAY,GAAI;QACxD,WAAW,CAAC,CAAC,CAAC,CACb,oBAAC,GAAG,IAAC,OAAO,EAAE,CAAC;YACb,oBAAC,OAAO,IAAC,KAAK,EAAC,cAAc,GAAG,CAC5B,CACP,CAAC,CAAC,CAAC,CACF,oBAAC,SAAS,OAAG,CACd,CACA,CACJ,CAAC;AACJ,CAAC"}
|
|
@@ -59,24 +59,18 @@ import { calculateMD5 } from '../utils/calculateMD5.js';
|
|
|
59
59
|
import { connect, disconnect } from '../utils/databaseConnection.js';
|
|
60
60
|
import { ensureDirectories } from '../utils/ensureDirectories.js';
|
|
61
61
|
import { TemplateManager } from './templateManager.js';
|
|
62
|
-
const waitForCondition = async (condition, timeout = 5000, interval = 100) => {
|
|
63
|
-
const start = Date.now();
|
|
64
|
-
while (Date.now() - start < timeout) {
|
|
65
|
-
if (await condition())
|
|
66
|
-
return true;
|
|
67
|
-
await new Promise(resolve => setTimeout(resolve, interval));
|
|
68
|
-
}
|
|
69
|
-
return false;
|
|
70
|
-
};
|
|
71
62
|
describe('TemplateManager', () => {
|
|
72
63
|
const testContext = {
|
|
73
|
-
|
|
64
|
+
testId: 0,
|
|
74
65
|
testDir: '',
|
|
75
66
|
testFunctionName: '',
|
|
67
|
+
templateCounter: 0,
|
|
76
68
|
};
|
|
77
69
|
beforeEach(async () => {
|
|
78
|
-
testContext.
|
|
79
|
-
testContext.
|
|
70
|
+
testContext.testId = Math.floor(Math.random() * 1000000);
|
|
71
|
+
testContext.testDir = join(tmpdir(), `srtd-test`);
|
|
72
|
+
testContext.testFunctionName = `${TEST_FN_PREFIX}`;
|
|
73
|
+
testContext.templateCounter = 0;
|
|
80
74
|
await ensureDirectories(testContext.testDir);
|
|
81
75
|
const client = await connect();
|
|
82
76
|
try {
|
|
@@ -108,36 +102,47 @@ describe('TemplateManager', () => {
|
|
|
108
102
|
await fs.rm(testContext.testDir, { recursive: true, force: true });
|
|
109
103
|
disconnect();
|
|
110
104
|
});
|
|
105
|
+
// Helper to generate unique template names
|
|
106
|
+
const getNextTemplateName = (prefix = 'template') => {
|
|
107
|
+
testContext.templateCounter++;
|
|
108
|
+
return `${prefix}_${testContext.testId}_${testContext.templateCounter}`;
|
|
109
|
+
};
|
|
111
110
|
const createTemplate = async (name, content, dir) => {
|
|
112
111
|
const fullPath = dir
|
|
113
112
|
? join(testContext.testDir, 'test-templates', dir, name)
|
|
114
113
|
: join(testContext.testDir, 'test-templates', name);
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
114
|
+
try {
|
|
115
|
+
await fs.mkdir(path.dirname(fullPath), { recursive: true });
|
|
116
|
+
await fs.writeFile(fullPath, content);
|
|
117
|
+
return fullPath;
|
|
118
|
+
}
|
|
119
|
+
catch (error) {
|
|
120
|
+
console.error('Error creating template:', error);
|
|
121
|
+
throw error;
|
|
122
|
+
}
|
|
118
123
|
};
|
|
119
|
-
const createTemplateWithFunc = async (
|
|
124
|
+
const createTemplateWithFunc = async (prefix, funcSuffix = '', dir) => {
|
|
125
|
+
const name = `${getNextTemplateName(prefix)}.sql`;
|
|
120
126
|
const funcName = `${testContext.testFunctionName}${funcSuffix}`;
|
|
121
127
|
const content = `CREATE OR REPLACE FUNCTION ${funcName}() RETURNS void AS $$ BEGIN NULL; END; $$ LANGUAGE plpgsql;`;
|
|
122
128
|
return createTemplate(name, content, dir);
|
|
123
129
|
};
|
|
124
130
|
it('should create migration file when template changes', async () => {
|
|
125
|
-
await createTemplateWithFunc(
|
|
131
|
+
await createTemplateWithFunc('basic', '_file_change');
|
|
126
132
|
const manager = await TemplateManager.create(testContext.testDir);
|
|
127
133
|
await manager.processTemplates({ generateFiles: true });
|
|
128
134
|
const migrations = await fs.readdir(join(testContext.testDir, 'test-migrations'));
|
|
129
|
-
|
|
130
|
-
expect(relevantMigrations).toHaveLength(1);
|
|
135
|
+
expect(migrations.length).toBe(1);
|
|
131
136
|
});
|
|
132
137
|
it('should not allow building WIP templates', async () => {
|
|
133
|
-
await createTemplateWithFunc(
|
|
138
|
+
await createTemplateWithFunc('file.wip', '_wip_wont_build');
|
|
134
139
|
const manager = await TemplateManager.create(testContext.testDir);
|
|
135
140
|
await manager.processTemplates({ generateFiles: true });
|
|
136
141
|
const migrations = await fs.readdir(join(testContext.testDir, 'test-migrations'));
|
|
137
|
-
expect(migrations.filter(m => m.includes(`
|
|
142
|
+
expect(migrations.filter(m => m.includes(`wip`))).toHaveLength(0);
|
|
138
143
|
});
|
|
139
144
|
it('should maintain separate build and local logs', async () => {
|
|
140
|
-
const templatePath = join(testContext.testDir, 'test-templates', `
|
|
145
|
+
const templatePath = join(testContext.testDir, 'test-templates', `template_${testContext.testId}_1.sql`);
|
|
141
146
|
const templateContent = `CREATE FUNCTION ${testContext.testFunctionName}() RETURNS void AS $$ BEGIN NULL; END; $$ LANGUAGE plpgsql;`;
|
|
142
147
|
await fs.writeFile(templatePath, templateContent);
|
|
143
148
|
const manager = await TemplateManager.create(testContext.testDir);
|
|
@@ -152,7 +157,7 @@ describe('TemplateManager', () => {
|
|
|
152
157
|
expect(localLog.templates[relPath].lastAppliedHash).toBeDefined();
|
|
153
158
|
});
|
|
154
159
|
it('should track template state correctly', async () => {
|
|
155
|
-
const templatePath = join(testContext.testDir, 'test-templates', `
|
|
160
|
+
const templatePath = join(testContext.testDir, 'test-templates', `template_${testContext.testId}_1.sql`);
|
|
156
161
|
const templateContent = `CREATE FUNCTION ${testContext.testFunctionName}() RETURNS void AS $$ BEGIN NULL; END; $$ LANGUAGE plpgsql;`;
|
|
157
162
|
await fs.writeFile(templatePath, templateContent);
|
|
158
163
|
const manager = await TemplateManager.create(testContext.testDir);
|
|
@@ -172,7 +177,7 @@ describe('TemplateManager', () => {
|
|
|
172
177
|
expect(status.buildState.lastAppliedDate).toBeDefined();
|
|
173
178
|
});
|
|
174
179
|
it('should handle rapid template changes', async () => {
|
|
175
|
-
const templatePath = join(testContext.testDir, 'test-templates', `
|
|
180
|
+
const templatePath = join(testContext.testDir, 'test-templates', `template_${testContext.testId}_1.sql`);
|
|
176
181
|
const baseContent = `CREATE OR REPLACE FUNCTION ${testContext.testFunctionName}() RETURNS void AS $$ BEGIN NULL; END; $$ LANGUAGE plpgsql;`;
|
|
177
182
|
await fs.writeFile(templatePath, baseContent);
|
|
178
183
|
const manager = await TemplateManager.create(testContext.testDir);
|
|
@@ -193,7 +198,7 @@ describe('TemplateManager', () => {
|
|
|
193
198
|
expect(new Set(changes).size).toBe(changes.length); // All changes should be unique
|
|
194
199
|
}, 10000);
|
|
195
200
|
it('should apply WIP templates directly to database', async () => {
|
|
196
|
-
const templatePath = join(testContext.testDir, 'test-templates', `
|
|
201
|
+
const templatePath = join(testContext.testDir, 'test-templates', `template_${testContext.testId}_1.wip.sql`);
|
|
197
202
|
const templateContent = `CREATE FUNCTION ${testContext.testFunctionName}() RETURNS void AS $$ BEGIN NULL; END; $$ LANGUAGE plpgsql;`;
|
|
198
203
|
await fs.writeFile(templatePath, templateContent);
|
|
199
204
|
const manager = await TemplateManager.create(testContext.testDir);
|
|
@@ -211,25 +216,14 @@ describe('TemplateManager', () => {
|
|
|
211
216
|
}
|
|
212
217
|
});
|
|
213
218
|
it('should handle sequential template operations', async () => {
|
|
214
|
-
|
|
219
|
+
await Promise.all([...Array(5)].map((_, i) => createTemplateWithFunc(`sequencetest_${i}`, `_sequence_test_${i}`)));
|
|
215
220
|
const manager = await TemplateManager.create(testContext.testDir);
|
|
216
221
|
const client = await connect();
|
|
217
222
|
try {
|
|
218
223
|
// Start transaction for isolation
|
|
219
224
|
await client.query('BEGIN');
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
const result = await manager.processTemplates({ apply: true });
|
|
223
|
-
expect(result.errors).toHaveLength(0);
|
|
224
|
-
// Wait for function to appear with retry logic
|
|
225
|
-
const functionExists = await waitForCondition(async () => {
|
|
226
|
-
const res = await client.query(`SELECT proname FROM pg_proc WHERE proname = $1`, [
|
|
227
|
-
`${testContext.testFunctionName}_sequence_test_${index}`,
|
|
228
|
-
]);
|
|
229
|
-
return res.rows.length === 1;
|
|
230
|
-
});
|
|
231
|
-
expect(functionExists).toBe(true);
|
|
232
|
-
}
|
|
225
|
+
const result = await manager.processTemplates({ apply: true });
|
|
226
|
+
expect(result.errors).toHaveLength(0);
|
|
233
227
|
// Verify final state
|
|
234
228
|
const allFunctions = await client.query(`SELECT proname FROM pg_proc WHERE proname LIKE $1`, [
|
|
235
229
|
`${testContext.testFunctionName}_sequence_test_%`,
|
|
@@ -247,7 +241,7 @@ describe('TemplateManager', () => {
|
|
|
247
241
|
}
|
|
248
242
|
});
|
|
249
243
|
it('should generate unique timestamps for multiple templates', async () => {
|
|
250
|
-
const templates = await Promise.all([...Array(10)].map((_, i) => createTemplateWithFunc(`
|
|
244
|
+
const templates = await Promise.all([...Array(10)].map((_, i) => createTemplateWithFunc(`timestamptest_${i}`, `_unique_timestamps_${i}`)));
|
|
251
245
|
const manager = await TemplateManager.create(testContext.testDir);
|
|
252
246
|
await manager.processTemplates({ generateFiles: true });
|
|
253
247
|
const migrations = await fs.readdir(join(testContext.testDir, 'test-migrations'));
|
|
@@ -257,8 +251,8 @@ describe('TemplateManager', () => {
|
|
|
257
251
|
expect(timestamps).toEqual([...timestamps].sort());
|
|
258
252
|
});
|
|
259
253
|
it('should handle mix of working and broken templates', async () => {
|
|
260
|
-
await createTemplateWithFunc(`a-test-good
|
|
261
|
-
await createTemplate(`a-test-bad
|
|
254
|
+
await createTemplateWithFunc(`a-test-good`, '_good_and_broken_mix');
|
|
255
|
+
await createTemplate(`a-test-bad.sql`, 'INVALID SQL SYNTAX;');
|
|
262
256
|
const manager = await TemplateManager.create(testContext.testDir);
|
|
263
257
|
const result = await manager.processTemplates({ apply: true });
|
|
264
258
|
expect(result.errors).toHaveLength(1);
|
|
@@ -276,18 +270,23 @@ describe('TemplateManager', () => {
|
|
|
276
270
|
});
|
|
277
271
|
it('should handle database errors gracefully', async () => {
|
|
278
272
|
const manager = await TemplateManager.create(testContext.testDir);
|
|
279
|
-
await createTemplate(`test-error
|
|
273
|
+
await createTemplate(`test-error.sql`, 'SELECT 1/0;'); // Division by zero error
|
|
280
274
|
const result = await manager.processTemplates({ apply: true });
|
|
281
275
|
expect(result.errors).toHaveLength(1);
|
|
282
276
|
expect(result.errors[0]?.error).toMatch(/division by zero/i);
|
|
283
277
|
});
|
|
284
278
|
it('should handle file system errors', async () => {
|
|
285
|
-
const errorPath = join(testContext.testDir, 'test-templates', `test-error
|
|
279
|
+
const errorPath = join(testContext.testDir, 'test-templates', `test-error.sql`);
|
|
286
280
|
try {
|
|
287
|
-
await createTemplate(`test-error
|
|
281
|
+
await createTemplate(`test-error.sql`, 'SELECT 1;');
|
|
288
282
|
await fs.chmod(errorPath, 0o000);
|
|
289
283
|
const manager = await TemplateManager.create(testContext.testDir);
|
|
290
|
-
|
|
284
|
+
try {
|
|
285
|
+
await manager.processTemplates({ generateFiles: true });
|
|
286
|
+
}
|
|
287
|
+
catch (error) {
|
|
288
|
+
expect(error).toBeDefined();
|
|
289
|
+
}
|
|
291
290
|
// Cleanup for afterEach
|
|
292
291
|
await fs.chmod(errorPath, 0o644);
|
|
293
292
|
}
|
|
@@ -304,7 +303,7 @@ describe('TemplateManager', () => {
|
|
|
304
303
|
});
|
|
305
304
|
it('should handle large batches of templates', async () => {
|
|
306
305
|
// Create 50 templates
|
|
307
|
-
await Promise.all([...Array(50)].map((_, i) => createTemplateWithFunc(`
|
|
306
|
+
await Promise.all([...Array(50)].map((_, i) => createTemplateWithFunc(`test_${i}`, `_large_batch_${i}`)));
|
|
308
307
|
const manager = await TemplateManager.create(testContext.testDir);
|
|
309
308
|
const result = await manager.processTemplates({ generateFiles: true });
|
|
310
309
|
expect(result.errors).toHaveLength(0);
|
|
@@ -312,8 +311,9 @@ describe('TemplateManager', () => {
|
|
|
312
311
|
expect(migrations.length).toBe(50);
|
|
313
312
|
});
|
|
314
313
|
it('should handle templates with complex SQL', async () => {
|
|
314
|
+
const testFunctionName = `${testContext.testFunctionName}_complex`;
|
|
315
315
|
const complexSQL = `
|
|
316
|
-
CREATE OR REPLACE FUNCTION ${
|
|
316
|
+
CREATE OR REPLACE FUNCTION ${testFunctionName}(
|
|
317
317
|
param1 integer DEFAULT 100,
|
|
318
318
|
OUT result1 integer,
|
|
319
319
|
OUT result2 text
|
|
@@ -337,7 +337,7 @@ describe('TemplateManager', () => {
|
|
|
337
337
|
END;
|
|
338
338
|
$$ LANGUAGE plpgsql;
|
|
339
339
|
`;
|
|
340
|
-
await createTemplate(`test-complex
|
|
340
|
+
await createTemplate(`test-complex.sql`, complexSQL);
|
|
341
341
|
const manager = await TemplateManager.create(testContext.testDir);
|
|
342
342
|
const result = await manager.processTemplates({ apply: true });
|
|
343
343
|
expect(result.errors).toHaveLength(0);
|
|
@@ -347,7 +347,7 @@ describe('TemplateManager', () => {
|
|
|
347
347
|
SELECT proname, pronargs, prorettype::regtype::text as return_type
|
|
348
348
|
FROM pg_proc
|
|
349
349
|
WHERE proname = $1
|
|
350
|
-
`, [
|
|
350
|
+
`, [testFunctionName]);
|
|
351
351
|
expect(res.rows).toHaveLength(1);
|
|
352
352
|
expect(res.rows[0].return_type).toBe('record');
|
|
353
353
|
}
|
|
@@ -356,7 +356,7 @@ describe('TemplateManager', () => {
|
|
|
356
356
|
}
|
|
357
357
|
});
|
|
358
358
|
it('should maintain template state across manager instances', async () => {
|
|
359
|
-
const template = await createTemplateWithFunc(`test
|
|
359
|
+
const template = await createTemplateWithFunc(`test`, 'maintain_state');
|
|
360
360
|
// First manager instance
|
|
361
361
|
const manager1 = await TemplateManager.create(testContext.testDir);
|
|
362
362
|
await manager1.processTemplates({ generateFiles: true });
|
|
@@ -373,10 +373,10 @@ describe('TemplateManager', () => {
|
|
|
373
373
|
});
|
|
374
374
|
const watcher = await manager.watch();
|
|
375
375
|
// Add new template after watch started
|
|
376
|
-
await createTemplateWithFunc(
|
|
376
|
+
await createTemplateWithFunc('new', '_watch_addition');
|
|
377
377
|
await new Promise(resolve => setTimeout(resolve, 150));
|
|
378
378
|
watcher.close();
|
|
379
|
-
expect(changes).toContain(`
|
|
379
|
+
expect(changes).toContain(`new_${testContext.testId}_1`);
|
|
380
380
|
});
|
|
381
381
|
it('should handle templates in deep subdirectories', async () => {
|
|
382
382
|
// Create nested directory structure
|
|
@@ -384,7 +384,7 @@ describe('TemplateManager', () => {
|
|
|
384
384
|
const templatePaths = [];
|
|
385
385
|
for (let i = 1; i <= depth; i++) {
|
|
386
386
|
const dir = [...Array(i)].map((_, idx) => `level${idx + 1}`).join('/');
|
|
387
|
-
const templatePath = await createTemplateWithFunc(`depth-
|
|
387
|
+
const templatePath = await createTemplateWithFunc(`depth-test_${i}`, `_depth_${i}`, dir);
|
|
388
388
|
templatePaths.push(templatePath);
|
|
389
389
|
}
|
|
390
390
|
const manager = await TemplateManager.create(testContext.testDir);
|
|
@@ -398,7 +398,7 @@ describe('TemplateManager', () => {
|
|
|
398
398
|
expect(changes.length).toBe(depth);
|
|
399
399
|
// Verify each template was detected
|
|
400
400
|
for (let i = 1; i <= depth; i++) {
|
|
401
|
-
expect(changes).toContain(`depth-
|
|
401
|
+
expect(changes).toContain(`depth-test_${i}_${testContext.testId}_${i}`);
|
|
402
402
|
}
|
|
403
403
|
});
|
|
404
404
|
it('should only watch SQL files', async () => {
|
|
@@ -412,45 +412,52 @@ describe('TemplateManager', () => {
|
|
|
412
412
|
// Create various file types
|
|
413
413
|
await fs.writeFile(join(testContext.testDir, 'test-templates/test.txt'), 'not sql');
|
|
414
414
|
await fs.writeFile(join(testContext.testDir, 'test-templates/test.md'), 'not sql');
|
|
415
|
-
await createTemplateWithFunc(`
|
|
415
|
+
await createTemplateWithFunc(`sql`, '_watch_sql_only');
|
|
416
416
|
await new Promise(resolve => setTimeout(resolve, 500));
|
|
417
417
|
watcher.close();
|
|
418
418
|
expect(changes).toHaveLength(1);
|
|
419
|
-
expect(changes[0]).toBe(`
|
|
419
|
+
expect(changes[0]).toBe(`sql_${testContext.testId}_1`);
|
|
420
420
|
});
|
|
421
421
|
it('should handle multiple template changes simultaneously', async () => {
|
|
422
|
+
const client = await connect();
|
|
422
423
|
const manager = await TemplateManager.create(testContext.testDir);
|
|
423
424
|
const changes = new Set();
|
|
424
425
|
const count = 5;
|
|
426
|
+
const watcher = await manager.watch();
|
|
427
|
+
await new Promise(resolve => setTimeout(resolve, 100));
|
|
425
428
|
manager.on('templateChanged', template => {
|
|
426
429
|
changes.add(template.name);
|
|
427
430
|
});
|
|
428
|
-
const watcher = await manager.watch();
|
|
429
|
-
await new Promise(resolve => setTimeout(resolve, 100));
|
|
430
431
|
// Create multiple templates simultaneously
|
|
431
|
-
|
|
432
|
-
createTemplateWithFunc(`
|
|
433
|
-
createTemplateWithFunc(`
|
|
434
|
-
createTemplateWithFunc(`
|
|
435
|
-
createTemplateWithFunc(`
|
|
436
|
-
createTemplateWithFunc(`
|
|
437
|
-
|
|
432
|
+
try {
|
|
433
|
+
await createTemplateWithFunc(`rapid_test_1`, '_batch_changes_1');
|
|
434
|
+
await createTemplateWithFunc(`rapid_test_2`, '_batch_changes_2');
|
|
435
|
+
await createTemplateWithFunc(`rapid_test_3`, '_batch_changes_3');
|
|
436
|
+
await createTemplateWithFunc(`rapid_test_4`, '_batch_changes_4', 'deep');
|
|
437
|
+
await createTemplateWithFunc(`rapid_test_5`, '_batch_changes_5', 'deep/nested');
|
|
438
|
+
}
|
|
439
|
+
catch (error) {
|
|
440
|
+
console.error('Error creating templates:', error);
|
|
441
|
+
throw error;
|
|
442
|
+
}
|
|
438
443
|
// Give enough time for all changes to be detected
|
|
439
444
|
await new Promise(resolve => setTimeout(resolve, count * 100 * 1.1));
|
|
440
445
|
watcher.close();
|
|
441
446
|
expect(changes.size).toBe(count); // Should detect all 5 templates
|
|
442
447
|
for (let i = 1; i <= count; i++) {
|
|
443
|
-
expect(changes.has(`
|
|
448
|
+
expect(changes.has(`rapid_test_${i}_${testContext.testId}_${i}`)).toBe(true);
|
|
444
449
|
}
|
|
445
450
|
// Verify all templates were processed
|
|
446
|
-
|
|
451
|
+
await new Promise(resolve => setTimeout(resolve, 50));
|
|
447
452
|
try {
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
453
|
+
const res = await client.query(`SELECT proname FROM pg_proc WHERE proname LIKE $1`, [
|
|
454
|
+
`${testContext.testFunctionName}_batch_changes_%`,
|
|
455
|
+
]);
|
|
456
|
+
// expect(res).toBe('');
|
|
457
|
+
expect(res.rows).toHaveLength(count);
|
|
458
|
+
}
|
|
459
|
+
catch (error) {
|
|
460
|
+
console.error('Error querying functions:', error);
|
|
454
461
|
}
|
|
455
462
|
finally {
|
|
456
463
|
client.release();
|
|
@@ -490,7 +497,7 @@ describe('TemplateManager', () => {
|
|
|
490
497
|
});
|
|
491
498
|
const watcher = await manager.watch();
|
|
492
499
|
// Create all templates
|
|
493
|
-
await Promise.all(Array.from({ length: TEMPLATE_COUNT }, (_, i) => createTemplateWithFunc(`
|
|
500
|
+
await Promise.all(Array.from({ length: TEMPLATE_COUNT }, (_, i) => createTemplateWithFunc(`bulk_${i + 1}`, `_bulk_${i + 1}`)));
|
|
494
501
|
await processingComplete;
|
|
495
502
|
watcher.close();
|
|
496
503
|
expect(processed.size + failed.size).toBe(TEMPLATE_COUNT);
|
|
@@ -505,15 +512,15 @@ describe('TemplateManager', () => {
|
|
|
505
512
|
});
|
|
506
513
|
await manager.watch();
|
|
507
514
|
// Create template before disposal
|
|
508
|
-
await createTemplateWithFunc(`
|
|
515
|
+
await createTemplateWithFunc(`before-dispose`, 'before_dispose');
|
|
509
516
|
await new Promise(resolve => setTimeout(resolve, 100));
|
|
510
517
|
// Dispose and verify cleanup
|
|
511
518
|
manager[Symbol.dispose]();
|
|
512
519
|
// Try creating template after disposal
|
|
513
|
-
await createTemplateWithFunc(`
|
|
520
|
+
await createTemplateWithFunc(`after-dispose`, 'after_dispose');
|
|
514
521
|
await new Promise(resolve => setTimeout(resolve, 100));
|
|
515
522
|
expect(changes).toHaveLength(1);
|
|
516
|
-
expect(changes[0]).toBe(`
|
|
523
|
+
expect(changes[0]).toBe(`before-dispose_${testContext.testId}_1`);
|
|
517
524
|
});
|
|
518
525
|
it('should auto-cleanup with using statement', async () => {
|
|
519
526
|
const changes = [];
|
|
@@ -525,7 +532,7 @@ describe('TemplateManager', () => {
|
|
|
525
532
|
changes.push(template.name);
|
|
526
533
|
});
|
|
527
534
|
await manager.watch();
|
|
528
|
-
await createTemplateWithFunc(`
|
|
535
|
+
await createTemplateWithFunc(`during-scope`, 'during_scope');
|
|
529
536
|
await new Promise(resolve => setTimeout(resolve, 100));
|
|
530
537
|
}
|
|
531
538
|
catch (e_1) {
|
|
@@ -537,13 +544,13 @@ describe('TemplateManager', () => {
|
|
|
537
544
|
}
|
|
538
545
|
})();
|
|
539
546
|
// After scope exit, create another template
|
|
540
|
-
await createTemplateWithFunc(`
|
|
547
|
+
await createTemplateWithFunc(`after-scope`, 'after_scope');
|
|
541
548
|
await new Promise(resolve => setTimeout(resolve, 100));
|
|
542
549
|
expect(changes).toHaveLength(1);
|
|
543
|
-
expect(changes[0]).toBe(`
|
|
550
|
+
expect(changes[0]).toBe(`during-scope_${testContext.testId}_1`);
|
|
544
551
|
});
|
|
545
552
|
it('should not process unchanged templates', async () => {
|
|
546
|
-
const templatePath = await createTemplateWithFunc(`
|
|
553
|
+
const templatePath = await createTemplateWithFunc(`initial_will_remain_unchanged`, 'unchanged_tmpl');
|
|
547
554
|
const manager = await TemplateManager.create(testContext.testDir);
|
|
548
555
|
await manager.watch();
|
|
549
556
|
// First processing
|
|
@@ -564,8 +571,8 @@ describe('TemplateManager', () => {
|
|
|
564
571
|
});
|
|
565
572
|
it('should only process modified templates in batch', async () => {
|
|
566
573
|
// Create two templates
|
|
567
|
-
const template1 = await createTemplateWithFunc(`modified_tmpl_1
|
|
568
|
-
await createTemplateWithFunc(`modified_tmpl_2
|
|
574
|
+
const template1 = await createTemplateWithFunc(`modified_tmpl_1`, 'mod_1');
|
|
575
|
+
await createTemplateWithFunc(`modified_tmpl_2`, 'mod_2');
|
|
569
576
|
const manager = await TemplateManager.create(testContext.testDir);
|
|
570
577
|
// First processing of both
|
|
571
578
|
await manager.processTemplates({ apply: true });
|
|
@@ -574,14 +581,20 @@ describe('TemplateManager', () => {
|
|
|
574
581
|
changes.push(template.name);
|
|
575
582
|
});
|
|
576
583
|
// Modify only template1
|
|
577
|
-
|
|
584
|
+
try {
|
|
585
|
+
await fs.writeFile(template1, `${await fs.readFile(template1, 'utf-8')}\n-- Modified`);
|
|
586
|
+
}
|
|
587
|
+
catch (error) {
|
|
588
|
+
console.error('Test: Error modifying template:', error);
|
|
589
|
+
throw error;
|
|
590
|
+
}
|
|
578
591
|
// Process both templates again
|
|
579
592
|
await manager.processTemplates({ apply: true });
|
|
580
593
|
expect(changes).toHaveLength(1);
|
|
581
|
-
expect(changes[0]).toBe(`
|
|
594
|
+
expect(changes[0]).toBe(`modified_tmpl_1_${testContext.testId}_1`);
|
|
582
595
|
});
|
|
583
596
|
it('should correctly update local buildlog on apply', async () => {
|
|
584
|
-
const templatePath = await createTemplateWithFunc(`
|
|
597
|
+
const templatePath = await createTemplateWithFunc(`buildlog`, '_buildlog');
|
|
585
598
|
const manager = await TemplateManager.create(testContext.testDir);
|
|
586
599
|
const localBuildlogPath = join(testContext.testDir, '.buildlog-test.local.json');
|
|
587
600
|
// Initial apply
|
|
@@ -606,7 +619,7 @@ describe('TemplateManager', () => {
|
|
|
606
619
|
expect(newHash).not.toBe(initialHash);
|
|
607
620
|
});
|
|
608
621
|
it('should skip apply if template hash matches local buildlog', async () => {
|
|
609
|
-
const templatePath = await createTemplateWithFunc(`
|
|
622
|
+
const templatePath = await createTemplateWithFunc(`skip`, '_skip_apply');
|
|
610
623
|
const manager = await TemplateManager.create(testContext.testDir);
|
|
611
624
|
const localBuildlogPath = join(testContext.testDir, '.buildlog-test.local.json');
|
|
612
625
|
// Initial apply
|
|
@@ -627,8 +640,8 @@ describe('TemplateManager', () => {
|
|
|
627
640
|
it('should not reapply unchanged templates in watch mode', async () => {
|
|
628
641
|
// Create multiple templates
|
|
629
642
|
const templates = await Promise.all([
|
|
630
|
-
createTemplateWithFunc(`watch-
|
|
631
|
-
createTemplateWithFunc(`watch-
|
|
643
|
+
createTemplateWithFunc(`watch-stable_1`, '_watch_1'),
|
|
644
|
+
createTemplateWithFunc(`watch-stable_2`, '_watch_2'),
|
|
632
645
|
]);
|
|
633
646
|
const manager = await TemplateManager.create(testContext.testDir);
|
|
634
647
|
const applied = [];
|
|
@@ -668,7 +681,7 @@ describe('TemplateManager', () => {
|
|
|
668
681
|
});
|
|
669
682
|
it('should process unapplied templates on startup', async () => {
|
|
670
683
|
// Create template but don't process it
|
|
671
|
-
await createTemplateWithFunc(`startup-test
|
|
684
|
+
await createTemplateWithFunc(`startup-test`, '_startup_test');
|
|
672
685
|
// Create a new manager instance
|
|
673
686
|
const manager = await TemplateManager.create(testContext.testDir);
|
|
674
687
|
const changes = [];
|
|
@@ -680,11 +693,11 @@ describe('TemplateManager', () => {
|
|
|
680
693
|
await new Promise(resolve => setTimeout(resolve, 100));
|
|
681
694
|
expect(changes).toHaveLength(1);
|
|
682
695
|
expect(applied).toHaveLength(1);
|
|
683
|
-
expect(changes[0]).toBe(`startup-
|
|
684
|
-
expect(applied[0]).toBe(`startup-
|
|
696
|
+
expect(changes[0]).toBe(`startup-test_${testContext.testId}_1`);
|
|
697
|
+
expect(applied[0]).toBe(`startup-test_${testContext.testId}_1`);
|
|
685
698
|
});
|
|
686
699
|
it('should handle error state transitions correctly', async () => {
|
|
687
|
-
const templatePath = await createTemplateWithFunc(`error-state
|
|
700
|
+
const templatePath = await createTemplateWithFunc(`error-state`, '_error_test');
|
|
688
701
|
const manager = await TemplateManager.create(testContext.testDir);
|
|
689
702
|
const states = [];
|
|
690
703
|
manager.on('templateChanged', () => states.push({ type: 'changed' }));
|
|
@@ -708,7 +721,7 @@ describe('TemplateManager', () => {
|
|
|
708
721
|
]);
|
|
709
722
|
});
|
|
710
723
|
it('should maintain correct state through manager restarts', async () => {
|
|
711
|
-
const templatePath = await createTemplateWithFunc(`restart-test
|
|
724
|
+
const templatePath = await createTemplateWithFunc(`restart-test`, 'restart_test');
|
|
712
725
|
// First manager instance
|
|
713
726
|
const manager1 = await TemplateManager.create(testContext.testDir);
|
|
714
727
|
await manager1.processTemplates({ apply: true });
|
|
@@ -728,11 +741,11 @@ describe('TemplateManager', () => {
|
|
|
728
741
|
// Verify state was maintained and change was detected
|
|
729
742
|
const status2 = await manager2.getTemplateStatus(templatePath);
|
|
730
743
|
expect(status2.buildState.lastAppliedHash).not.toBe(initialHash);
|
|
731
|
-
expect(changes).toContain(`restart-
|
|
732
|
-
expect(applied).toContain(`restart-
|
|
744
|
+
expect(changes).toContain(`restart-test_${testContext.testId}_1`);
|
|
745
|
+
expect(applied).toContain(`restart-test_${testContext.testId}_1`);
|
|
733
746
|
});
|
|
734
747
|
it('should properly format and propagate error messages', async () => {
|
|
735
|
-
const templatePath = await createTemplateWithFunc(`error-format
|
|
748
|
+
const templatePath = await createTemplateWithFunc(`error-format`, 'error_format');
|
|
736
749
|
const manager = await TemplateManager.create(testContext.testDir);
|
|
737
750
|
const errors = [];
|
|
738
751
|
manager.on('templateError', err => errors.push(err));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"templateManager.test.js","sourceRoot":"","sources":["../../src/lib/templateManager.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"templateManager.test.js","sourceRoot":"","sources":["../../src/lib/templateManager.test.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@t1mmen/srtd",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.3",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "Supabase Repeatable Template Definitions (srtd): 🪄 Live-reloading SQL templates for Supabase DX. Make your database changes reviewable and migrations maintainable! 🚀",
|
|
6
6
|
"bin": {
|