@maka/maka-cli 3.3.67 → 4.0.72
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/.eslintrc.json +19 -0
- package/.mocharc.json +3 -0
- package/README.md +4 -10
- package/dist/README.md +27 -0
- package/dist/command.js +1 -0
- package/dist/commands/_index.js +1 -0
- package/dist/commands/aws/_index.js +1 -0
- package/dist/commands/aws/aws.command.js +1 -0
- package/dist/commands/aws/ci.sub.cmd.js +1 -0
- package/dist/commands/aws/ckp.sub.cmd.js +1 -0
- package/dist/commands/aws/csg.sub.cmd.js +1 -0
- package/dist/commands/aws/di.sub.cmd.js +1 -0
- package/dist/commands/aws/dks.sub.cmd.js +1 -0
- package/dist/commands/aws/rbi.sub.cmd.js +1 -0
- package/dist/commands/aws/sth.sub.cmd.js +1 -0
- package/dist/commands/aws/ti.sub.cmd.js +1 -0
- package/dist/commands/build/_index.js +1 -0
- package/dist/commands/build/build.js +1 -0
- package/dist/commands/build/docker.sub.cmd.js +1 -0
- package/dist/commands/create.js +1 -0
- package/dist/commands/debug.js +1 -0
- package/dist/commands/deploy.js +1 -0
- package/dist/commands/game/_index.js +1 -0
- package/dist/commands/game/battleship.sub.cmd.js +1 -0
- package/dist/commands/game/game.command.js +1 -0
- package/dist/commands/game/pong.sub.cmd.js +1 -0
- package/dist/commands/game/snake.sub.cmd.js +1 -0
- package/dist/commands/game/tetris.sub.cmd.js +1 -0
- package/dist/commands/generate.js +1 -0
- package/dist/commands/get/_index.js +1 -0
- package/dist/commands/get/get.command.js +1 -0
- package/dist/commands/get/global.sub.cmd.js +1 -0
- package/dist/commands/get/local.sub.cmd.js +1 -0
- package/dist/commands/help.js +1 -0
- package/dist/commands/install.js +1 -0
- package/dist/commands/jsdoc.js +1 -0
- package/dist/commands/login.js +1 -0
- package/dist/commands/logout.js +1 -0
- package/dist/commands/logs.js +1 -0
- package/dist/commands/maka.cmd.js +1 -0
- package/dist/commands/murder.js +1 -0
- package/dist/commands/reconfig.js +1 -0
- package/dist/commands/run.js +1 -0
- package/dist/commands/set/_index.js +1 -0
- package/dist/commands/set/global.sub.cmd.js +1 -0
- package/dist/commands/set/local.sub.cmd.js +1 -0
- package/dist/commands/set/set.command.js +1 -0
- package/dist/commands/ssh.js +1 -0
- package/dist/commands/ssl.js +1 -0
- package/dist/commands/test.js +1 -0
- package/dist/commands/version.js +1 -0
- package/dist/error.js +1 -0
- package/dist/generator.js +1 -0
- package/dist/generators/_index.js +1 -0
- package/dist/generators/api.js +1 -0
- package/dist/generators/collection.js +1 -0
- package/dist/generators/component.js +1 -0
- package/dist/generators/config.js +1 -0
- package/dist/generators/dbc.js +1 -0
- package/dist/generators/dockerfile.js +1 -0
- package/dist/generators/hook.js +1 -0
- package/dist/generators/kit.js +1 -0
- package/dist/generators/layout.js +1 -0
- package/dist/generators/maka.gen.js +1 -0
- package/dist/generators/methods.js +1 -0
- package/dist/generators/package.js +1 -0
- package/dist/generators/page.js +1 -0
- package/dist/generators/publish.js +1 -0
- package/dist/generators/route.js +1 -0
- package/dist/generators/scaffold.js +1 -0
- package/dist/generators/service.js +1 -0
- package/dist/maka.js +2 -0
- package/dist/templates/meteor/api/api.js +11 -0
- package/dist/templates/meteor/api/api.js.ts +11 -0
- package/dist/templates/meteor/api/collection.js +86 -0
- package/dist/templates/meteor/api/collection.js.ts +94 -0
- package/dist/templates/meteor/api/fixtures.js +23 -0
- package/dist/templates/meteor/api/fixtures.js.ts +23 -0
- package/dist/templates/meteor/api/methods.js +136 -0
- package/dist/templates/meteor/api/methods.js.ts +137 -0
- package/dist/templates/meteor/api/publications.js +31 -0
- package/dist/templates/meteor/api/publications.js.ts +31 -0
- package/dist/templates/meteor/api/register-api.js +15 -0
- package/dist/templates/meteor/api/register-api.js.ts +15 -0
- package/dist/templates/meteor/api/resolvers.js +9 -0
- package/dist/templates/meteor/api/resolvers.js.ts +9 -0
- package/dist/templates/meteor/api/tests.js +1 -0
- package/dist/templates/meteor/api/tests.js.ts +1 -0
- package/dist/templates/meteor/api/typeDefs.js +5 -0
- package/dist/templates/meteor/api/typeDefs.js.ts +5 -0
- package/dist/templates/meteor/app/client/.gitkeep +0 -0
- package/dist/templates/meteor/app/client/body.html +3 -0
- package/dist/templates/meteor/app/client/head.html +25 -0
- package/dist/templates/meteor/app/client/main.app-tests.js +9 -0
- package/dist/templates/meteor/app/client/main.app-tests.js.jsx +9 -0
- package/dist/templates/meteor/app/client/main.app-tests.js.ts +9 -0
- package/dist/templates/meteor/app/client/main.app-tests.js.tsx +9 -0
- package/dist/templates/meteor/app/client/main.js +1 -0
- package/dist/templates/meteor/app/client/main.js.jsx +1 -0
- package/dist/templates/meteor/app/client/main.js.ts +1 -0
- package/dist/templates/meteor/app/client/main.js.tsx +1 -0
- package/dist/templates/meteor/app/imports/api/.gitkeep +0 -0
- package/dist/templates/meteor/app/imports/startup/client/index.js +19 -0
- package/dist/templates/meteor/app/imports/startup/client/index.js.jsx +100 -0
- package/dist/templates/meteor/app/imports/startup/client/index.js.ts +19 -0
- package/dist/templates/meteor/app/imports/startup/client/index.js.tsx +101 -0
- package/dist/templates/meteor/app/imports/startup/client/routes.js +39 -0
- package/dist/templates/meteor/app/imports/startup/client/routes.js.jsx +48 -0
- package/dist/templates/meteor/app/imports/startup/client/routes.js.ts +24 -0
- package/dist/templates/meteor/app/imports/startup/client/routes.js.tsx +48 -0
- package/dist/templates/meteor/app/imports/startup/client/templates.js +9 -0
- package/dist/templates/meteor/app/imports/startup/client/templates.js.jsx +9 -0
- package/dist/templates/meteor/app/imports/startup/client/templates.js.ts +9 -0
- package/dist/templates/meteor/app/imports/startup/client/templates.js.tsx +9 -0
- package/dist/templates/meteor/app/imports/startup/lib/index.js +1 -0
- package/dist/templates/meteor/app/imports/startup/lib/index.js.jsx +10 -0
- package/dist/templates/meteor/app/imports/startup/lib/index.js.ts +1 -0
- package/dist/templates/meteor/app/imports/startup/lib/index.js.tsx +10 -0
- package/dist/templates/meteor/app/imports/startup/lib/routes.js.jsx +48 -0
- package/dist/templates/meteor/app/imports/startup/lib/routes.js.tsx +48 -0
- package/dist/templates/meteor/app/imports/startup/lib/templates.js.jsx +0 -0
- package/dist/templates/meteor/app/imports/startup/lib/templates.js.tsx +0 -0
- package/dist/templates/meteor/app/imports/startup/server/index.js +1 -0
- package/dist/templates/meteor/app/imports/startup/server/index.js.jsx +139 -0
- package/dist/templates/meteor/app/imports/startup/server/index.js.ts +0 -0
- package/dist/templates/meteor/app/imports/startup/server/index.js.tsx +138 -0
- package/dist/templates/meteor/app/imports/ui/test-helpers.js +24 -0
- package/dist/templates/meteor/app/imports/ui/test-helpers.js.ts +24 -0
- package/dist/templates/meteor/app/lib/.gitkeep +0 -0
- package/dist/templates/meteor/app/lib/main.js +1 -0
- package/dist/templates/meteor/app/lib/main.js.jsx +1 -0
- package/dist/templates/meteor/app/lib/main.js.ts +1 -0
- package/dist/templates/meteor/app/lib/main.js.tsx +1 -0
- package/dist/templates/meteor/app/maka.d.ts +160 -0
- package/dist/templates/meteor/app/meteor.d.ts +955 -0
- package/dist/templates/meteor/app/packages/.gitkeep +0 -0
- package/dist/templates/meteor/app/private/.gitkeep +0 -0
- package/dist/templates/meteor/app/public/.gitkeep +0 -0
- package/dist/templates/meteor/app/public/favicon.ico +0 -0
- package/dist/templates/meteor/app/public/manifest.json +9 -0
- package/dist/templates/meteor/app/public/sw.js +30 -0
- package/dist/templates/meteor/app/public/sw.js.jsx +30 -0
- package/dist/templates/meteor/app/public/sw.js.ts +30 -0
- package/dist/templates/meteor/app/public/sw.js.tsx +30 -0
- package/dist/templates/meteor/app/server/.gitkeep +0 -0
- package/dist/templates/meteor/app/server/main.app-tests.js +9 -0
- package/dist/templates/meteor/app/server/main.app-tests.js.jsx +9 -0
- package/dist/templates/meteor/app/server/main.app-tests.js.ts +9 -0
- package/dist/templates/meteor/app/server/main.app-tests.js.tsx +9 -0
- package/dist/templates/meteor/app/server/main.js +3 -0
- package/dist/templates/meteor/app/server/main.js.jsx +3 -0
- package/dist/templates/meteor/app/server/main.js.ts +3 -0
- package/dist/templates/meteor/app/server/main.js.tsx +3 -0
- package/dist/templates/meteor/app/tsconfig.json +26 -0
- package/dist/templates/meteor/collection/collection.js +85 -0
- package/dist/templates/meteor/collection/collection.js.ts +97 -0
- package/dist/templates/meteor/collection/tests.js +27 -0
- package/dist/templates/meteor/collection/tests.js.ts +27 -0
- package/dist/templates/meteor/config/docker-compose.yaml +17 -0
- package/dist/templates/meteor/config/pm2.config.js +25 -0
- package/dist/templates/meteor/config/process.env +5 -0
- package/dist/templates/meteor/config/settings.json +8 -0
- package/dist/templates/meteor/config/ssh.json +6 -0
- package/dist/templates/meteor/dbc/config.js +70 -0
- package/dist/templates/meteor/dbc/config.js.ts +70 -0
- package/dist/templates/meteor/dbc/conn.js +37 -0
- package/dist/templates/meteor/dbc/conn.js.ts +37 -0
- package/dist/templates/meteor/dbc/register-dbc.js +3 -0
- package/dist/templates/meteor/dbc/register-dbc.js.ts +3 -0
- package/dist/templates/meteor/method/method.js +48 -0
- package/dist/templates/meteor/method/method.js.ts +48 -0
- package/dist/templates/meteor/package/client/package.js +0 -0
- package/dist/templates/meteor/package/client/package.js.jsx +0 -0
- package/dist/templates/meteor/package/client/package.js.ts +0 -0
- package/dist/templates/meteor/package/client/package.js.tsx +0 -0
- package/dist/templates/meteor/package/lib/package.js +0 -0
- package/dist/templates/meteor/package/lib/package.js.jsx +0 -0
- package/dist/templates/meteor/package/lib/package.js.ts +0 -0
- package/dist/templates/meteor/package/lib/package.js.tsx +0 -0
- package/dist/templates/meteor/package/package.js +37 -0
- package/dist/templates/meteor/package/package.js.jsx +37 -0
- package/dist/templates/meteor/package/package.js.ts +36 -0
- package/dist/templates/meteor/package/package.js.tsx +37 -0
- package/dist/templates/meteor/package/server/package.js +0 -0
- package/dist/templates/meteor/package/server/package.js.jsx +0 -0
- package/dist/templates/meteor/package/server/package.js.ts +0 -0
- package/dist/templates/meteor/package/server/package.js.tsx +0 -0
- package/dist/templates/meteor/package/tests/client/package.js +5 -0
- package/dist/templates/meteor/package/tests/client/package.js.jsx +5 -0
- package/dist/templates/meteor/package/tests/client/package.js.ts +5 -0
- package/dist/templates/meteor/package/tests/client/package.js.tsx +5 -0
- package/dist/templates/meteor/package/tests/server/package.js +5 -0
- package/dist/templates/meteor/package/tests/server/package.js.jsx +5 -0
- package/dist/templates/meteor/package/tests/server/package.js.ts +5 -0
- package/dist/templates/meteor/package/tests/server/package.js.tsx +5 -0
- package/dist/templates/meteor/project/.maka/config.json +29 -0
- package/dist/templates/meteor/project/README.md +1 -0
- package/dist/templates/meteor/project/build/.gitkeep +0 -0
- package/dist/templates/meteor/project/build/README +4 -0
- package/dist/templates/meteor/project/gitignore +6 -0
- package/dist/templates/meteor/publish/publish.js +3 -0
- package/dist/templates/meteor/publish/publish.js.jsx +3 -0
- package/dist/templates/meteor/publish/publish.js.tsx +3 -0
- package/dist/templates/meteor/publish/publish.ts +3 -0
- package/dist/templates/meteor/service/logger/logger.js +17 -0
- package/dist/templates/meteor/service/logger/logger.js.ts +17 -0
- package/dist/templates/meteor/service/logger/transports.js +31 -0
- package/dist/templates/meteor/service/logger/transports.js.ts +31 -0
- package/dist/templates/meteor/stylesheet/stylesheet.css +5 -0
- package/dist/templates/meteor/stylesheet/stylesheet.css.less +5 -0
- package/dist/templates/meteor/template/template-tests.js +1 -0
- package/dist/templates/meteor/template/template-tests.js.jsx +55 -0
- package/dist/templates/meteor/template/template-tests.js.ts +1 -0
- package/dist/templates/meteor/template/template-tests.js.tsx +55 -0
- package/dist/templates/meteor/template/template.css +6 -0
- package/dist/templates/meteor/template/template.css.less +6 -0
- package/dist/templates/meteor/template/template.html +5 -0
- package/dist/templates/meteor/template/template.js +20 -0
- package/dist/templates/meteor/template/template.js.jsx +77 -0
- package/dist/templates/meteor/template/template.js.ts +1 -0
- package/dist/templates/meteor/template/template.js.tsx +89 -0
- package/dist/templates/react/component/component.css +6 -0
- package/dist/templates/react/component/component.css.less +6 -0
- package/dist/templates/react/component/component.js +0 -0
- package/dist/templates/react/component/component.js.jsx +64 -0
- package/dist/templates/react/component/component.js.ts +0 -0
- package/dist/templates/react/component/component.js.tsx +68 -0
- package/dist/templates/react/hook/hook.js +1 -0
- package/dist/templates/react/hook/hook.js.jsx +25 -0
- package/dist/templates/react/hook/hook.js.ts +0 -0
- package/dist/templates/react/hook/hook.js.tsx +25 -0
- package/dist/templates/react/route/route.js +8 -0
- package/dist/templates/react/route/route.js.jsx +8 -0
- package/dist/templates/react/route/route.js.ts +8 -0
- package/dist/templates/react/route/route.js.tsx +8 -0
- package/dist/templates/react/test/test.js +1 -0
- package/dist/templates/react/test/test.js.jsx +56 -0
- package/dist/templates/react/test/test.js.ts +1 -0
- package/dist/templates/react/test/test.js.tsx +55 -0
- package/dist/templates/service/docker/Dockerfile +54 -0
- package/dist/tool.js +1 -0
- package/dist/tools/actions/actions.class.js +1 -0
- package/dist/tools/actions/actions.test.js +1 -0
- package/dist/tools/aws/aws.class.js +1 -0
- package/dist/tools/aws/aws.interfaces.js +1 -0
- package/dist/tools/aws/aws.test.js +0 -0
- package/dist/tools/docker/docker.class.js +1 -0
- package/dist/tools/docker/docker.interfaces.js +1 -0
- package/dist/tools/docker/docker.test.js +0 -0
- package/dist/tools/fsi/fsi.class.js +1 -0
- package/dist/tools/fsi/fsi.interfaces.js +1 -0
- package/dist/tools/https/https.class.js +1 -0
- package/dist/tools/https/https.interface.js +1 -0
- package/dist/tools/log/log.class.js +1 -0
- package/dist/tools/log/log.interfaces.js +1 -0
- package/dist/tools/log/log.test.js +0 -0
- package/dist/tools/spawn-async/spawn-async.class.js +1 -0
- package/dist/tools/spawn-async/spawn-async.interfaces.js +1 -0
- package/dist/tools/spawn-async/spawn-async.test.js +0 -0
- package/dist/tools/ssh/ssh.class.js +1 -0
- package/dist/tools/ssh/ssh.interfaces.js +1 -0
- package/dist/tools/ssh/ssh.test.js +0 -0
- package/dist/tools/ssl/ssl.class.js +1 -0
- package/dist/tools/ssl/ssl.interfaces.js +0 -0
- package/dist/tools/ssl/ssl.test.js +0 -0
- package/maka-maka-telnet-2.0.2.tgz +0 -0
- package/obfuscator.json +29 -0
- package/package.json +86 -27
- package/tsconfig.json +23 -0
- package/AUTHORS +0 -19
- package/LICENSE +0 -1
- package/compiled/linux/maka +0 -0
- package/compiled/macos/maka +0 -0
- package/compiled/win/maka.exe +0 -0
- package/maka +0 -23
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { Meteor } from 'meteor/meteor';
|
|
2
|
+
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import { render, unmountComponentAtNode } from "react-dom";
|
|
5
|
+
import { act } from "react-dom/test-utils";
|
|
6
|
+
|
|
7
|
+
if (Meteor.isClient) {<% if(graphql === 'apollo' && !isStore) { %>
|
|
8
|
+
import { MockedProvider } from '@apollo/react-testing';
|
|
9
|
+
import gql from 'graphql-tag';
|
|
10
|
+
const mocks = [
|
|
11
|
+
{
|
|
12
|
+
request: {
|
|
13
|
+
query: gql`query { trucks }`, // consider importing the query from the actual component
|
|
14
|
+
variables: {
|
|
15
|
+
sample: 'variable'
|
|
16
|
+
},
|
|
17
|
+
},
|
|
18
|
+
result: {
|
|
19
|
+
data: {
|
|
20
|
+
trucks: 'hello trucks'
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
];
|
|
25
|
+
<% } %>
|
|
26
|
+
let container = null;
|
|
27
|
+
beforeEach(() => {
|
|
28
|
+
// setup a DOM element as a render target
|
|
29
|
+
container = document.createElement("div");
|
|
30
|
+
document.body.appendChild(container);
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
afterEach(() => {
|
|
34
|
+
// cleanup on exiting
|
|
35
|
+
unmountComponentAtNode(container);
|
|
36
|
+
container.remove();
|
|
37
|
+
container = null;
|
|
38
|
+
});
|
|
39
|
+
|
|
40
|
+
const { <%=className%>%> } = require('./<%= fileName %>');
|
|
41
|
+
describe('<<%= className %>/>', function() {
|
|
42
|
+
|
|
43
|
+
it('did render', () => {
|
|
44
|
+
act(() => {<% if(graphql === 'apollo' && !isStore) { %>
|
|
45
|
+
render(
|
|
46
|
+
<MockedProvider mocks={mocks} addTypename={false}>
|
|
47
|
+
<<%= className %>/>
|
|
48
|
+
</MockedProvider>
|
|
49
|
+
);<% } else { %>
|
|
50
|
+
render(<<%= className %>/>, container);<% } %>
|
|
51
|
+
});
|
|
52
|
+
expect(container.textContent).toBe("Find me in <%= myPath %>");
|
|
53
|
+
});
|
|
54
|
+
});
|
|
55
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { Meteor } from 'meteor/meteor';
|
|
2
|
+
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
import { render, unmountComponentAtNode } from "react-dom";
|
|
5
|
+
import { act } from "react-dom/test-utils";
|
|
6
|
+
|
|
7
|
+
if (Meteor.isClient) {<% if(graphql === 'apollo' && !isStore) { %>
|
|
8
|
+
import { MockedProvider } from '@apollo/react-testing';
|
|
9
|
+
import gql from 'graphql-tag';
|
|
10
|
+
const mocks = [
|
|
11
|
+
{
|
|
12
|
+
request: {
|
|
13
|
+
query: gql`query { trucks }`, // consider importing the query from the actual component
|
|
14
|
+
variables: {
|
|
15
|
+
sample: 'variable'
|
|
16
|
+
},
|
|
17
|
+
},
|
|
18
|
+
result: {
|
|
19
|
+
data: {
|
|
20
|
+
trucks: 'hello trucks'
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
];
|
|
25
|
+
<% } %>
|
|
26
|
+
let container = null;
|
|
27
|
+
beforeEach(() => {
|
|
28
|
+
// setup a DOM element as a render target
|
|
29
|
+
container = document.createElement("div");
|
|
30
|
+
document.body.appendChild(container);
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
afterEach(() => {
|
|
34
|
+
// cleanup on exiting
|
|
35
|
+
unmountComponentAtNode(container);
|
|
36
|
+
container.remove();
|
|
37
|
+
container = null;
|
|
38
|
+
});
|
|
39
|
+
|
|
40
|
+
const { <%=className%>%> } = require('./<%= fileName %>');
|
|
41
|
+
describe('<<%= className %>/>', function() {
|
|
42
|
+
|
|
43
|
+
it('did render', () => {
|
|
44
|
+
act(() => {<% if(graphql === 'apollo' && !isStore) { %>
|
|
45
|
+
render(
|
|
46
|
+
<MockedProvider mocks={mocks} addTypename={false}>
|
|
47
|
+
<<%= className %>/>
|
|
48
|
+
</MockedProvider>
|
|
49
|
+
);<% } else { %>
|
|
50
|
+
render(<<%= className %>/>, container);<% } %>
|
|
51
|
+
});
|
|
52
|
+
expect(container.textContent).toBe("Find me in <%= myPath %>");
|
|
53
|
+
});
|
|
54
|
+
});
|
|
55
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/*****************************************************************************/
|
|
2
|
+
/* <%= className %>: Style */
|
|
3
|
+
/*****************************************************************************/
|
|
4
|
+
<% if (isComponent) { %>#<%= cssCaseName %>-component {<% } else { %>#<%= cssCaseName %> {<% } %>
|
|
5
|
+
|
|
6
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/*****************************************************************************/
|
|
2
|
+
/* <%= cssCaseName %>: Style */
|
|
3
|
+
/*****************************************************************************/
|
|
4
|
+
<% if (isComponent) { %>#<%= cssCaseName %>-component {<% } else { %>#<%= cssCaseName %> {<% } %>
|
|
5
|
+
|
|
6
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
<% if (client === 'vanilla') { %>import '/imports/ui/layouts/master-layout/master-layout';
|
|
2
|
+
<% if (isComponent) { %>class <%= className %>Component {<% } else { %>class <%= className %>Page {<% } %>
|
|
3
|
+
constructor() {
|
|
4
|
+
this.text = `<h2>Find me in <%= myPath %></h2>`;
|
|
5
|
+
this.render();
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
markup() {
|
|
9
|
+
return `
|
|
10
|
+
<% if (isComponent) { %><div id="<%= cssCaseName %>-component">${this.text}</div><% } else { %><div id="<%= cssCaseName %>-page">${this.text}</div><% } %>
|
|
11
|
+
`;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
render() {<% if (isComponent) { %>
|
|
15
|
+
$('#<%= cssCaseName %>').html(this.markup());<% } else { %>
|
|
16
|
+
$('#master-layout').html(this.markup());<% } %>
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
<% if (isComponent) { %>export default <%= camelCaseName %>Component = new <%= className %>Component();<% } else { %>export default <%= camelCaseName %>Page = new <%= className %>Page();<% } %>
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { compose } from 'ramda'; // https://ramdajs.com/docs/#compose
|
|
2
|
+
<% if (client === 'react') { %>import React, { Component } from 'react';<% } else if (client === 'reflux') { %>
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import PropTypes from 'prop-types';<% if ( isStore ) { %>
|
|
5
|
+
import { Store } from 'reflux'; <% } else { %>
|
|
6
|
+
import { Component } from 'reflux';<% } %><% } %>
|
|
7
|
+
// https://github.com/meteor/react-packages/tree/master/packages/react-meteor-data#withtrackerreactivefn-higher-order-component
|
|
8
|
+
import { withTracker } from 'meteor/react-meteor-data';<% if(graphql === 'apollo') { %>
|
|
9
|
+
import { gql } from '@apollo/client';
|
|
10
|
+
// https://www.apollographql.com/docs/react/api/react/hoc/#graphqlquery-configcomponent
|
|
11
|
+
import { graphql } from '@apollo/client/react/hoc';<% } %><% if (theme === 'material' ) { %>
|
|
12
|
+
// https://material-ui.com/styles/basics/#higher-order-component-api
|
|
13
|
+
import { withStyles } from '@mui/styles';
|
|
14
|
+
|
|
15
|
+
const styles = (theme) => { };<% } %>
|
|
16
|
+
<% if (!isStore) { %>
|
|
17
|
+
class <%= className %>Component extends Component {<% } else { %>
|
|
18
|
+
class <%= className %>Component extends Store { <% } %><% if (client === 'reflux' && isStore) { %>
|
|
19
|
+
constructor() {
|
|
20
|
+
super();
|
|
21
|
+
this.state = {};
|
|
22
|
+
}<% } else { %>
|
|
23
|
+
/**
|
|
24
|
+
* Define types for your props for stability.
|
|
25
|
+
*/
|
|
26
|
+
static propTypes = {};
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* If a prop is not required, it is a good idea to provide
|
|
30
|
+
* it a default value
|
|
31
|
+
*/
|
|
32
|
+
static defaultProps = {};
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Setup the component. Best practices are to keep this light,
|
|
36
|
+
* and offload complex behavior to methods.
|
|
37
|
+
*/
|
|
38
|
+
constructor(props) {
|
|
39
|
+
super(props);
|
|
40
|
+
this.state = {};<% if (client === 'reflux') { %>
|
|
41
|
+
this.stores = [];
|
|
42
|
+
this.storeKeys = [];<% } %>
|
|
43
|
+
}<% } %>
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* This method runs after the component output has been rendered to the DOM.
|
|
47
|
+
* This is where you can start to interact with HTML elements, such as <div>,
|
|
48
|
+
* or attach event listeners to DOM elements.
|
|
49
|
+
*/
|
|
50
|
+
componentDidMount() { }
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* This is where the DOM will be torn down. A good idea is to clean up any
|
|
54
|
+
* event listeners you've created in the componentDidMount() method.
|
|
55
|
+
*/
|
|
56
|
+
componentWillUnmount() {<% if (client === 'reflux' && !isStore) { %> super.componentWillUnmount();<% }%> }
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* This is the main render method, and will rerun anytime either this.state or this.props is changed.
|
|
60
|
+
*/
|
|
61
|
+
render() {<% if (isStore) { %>
|
|
62
|
+
return null;<% } else { %>
|
|
63
|
+
return (
|
|
64
|
+
<div id="<% if (isComponent) { %><%= cssCaseName %>-component<% } else { %><%= cssCaseName %><% } %>">
|
|
65
|
+
<h2>Find me in <%= myPath %></h2>
|
|
66
|
+
</div>
|
|
67
|
+
);<% } %>
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
const <%= className %> = compose(
|
|
72
|
+
withTracker(() => {}),<% if(graphql === 'apollo') { %>
|
|
73
|
+
//graphql(gql`query Todos { todos }`, { variables: {/* input */} }),<% } %><% if(theme === 'material') { %>
|
|
74
|
+
withStyles(styles),<% } %>
|
|
75
|
+
)(<%= className %>Component);
|
|
76
|
+
|
|
77
|
+
export { <%= className %> };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { compose } from 'ramda'; // https://ramdajs.com/docs/#compose
|
|
2
|
+
<% if (client === 'react') { %>import * as React from 'react';<% } else if (client === 'reflux') { %>
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
import PropTypes from 'prop-types';<% if ( isStore ) { %>
|
|
5
|
+
import Store from 'reflux'; <% } else { %>
|
|
6
|
+
import Component from 'reflux';<% } %><% } %>
|
|
7
|
+
// https://github.com/meteor/react-packages/tree/master/packages/react-meteor-data#withtrackerreactivefn-higher-order-component
|
|
8
|
+
import { withTracker } from 'meteor/react-meteor-data';<% if(graphql === 'apollo') { %>
|
|
9
|
+
import { gql } from '@apollo/client';
|
|
10
|
+
// https://www.apollographql.com/docs/react/api/react/hoc/#graphqlquery-configcomponent
|
|
11
|
+
import { graphql } from '@apollo/client/react/hoc';<% } %><% if (theme === 'material' ) { %>
|
|
12
|
+
// https://material-ui.com/styles/basics/#higher-order-component-api
|
|
13
|
+
import { withStyles } from '@mui/styles';
|
|
14
|
+
|
|
15
|
+
const styles = (theme) => { };<% } %>
|
|
16
|
+
<% if (!isStore && client === 'react') { %>
|
|
17
|
+
interface <%= className %>Component {
|
|
18
|
+
props: object;
|
|
19
|
+
state: object;
|
|
20
|
+
}
|
|
21
|
+
class <%= className %>Component extends React.Component<<%= className %>Component> {<% } else if (!isStore && client === 'reflux') { %>
|
|
22
|
+
interface <%= className %>Interface {
|
|
23
|
+
props: object;
|
|
24
|
+
state: object;
|
|
25
|
+
}
|
|
26
|
+
class <%= className %>Component extends Reflux.Component<<%= className %>Component> {<% } else { %>
|
|
27
|
+
interface <%= className %>Component {
|
|
28
|
+
props: object;
|
|
29
|
+
state: object;
|
|
30
|
+
}
|
|
31
|
+
class <%= className %>Component extends Reflux.Store<<%= className %>Component> {<% } %><% if (client === 'reflux' && isStore) { %>
|
|
32
|
+
constructor() {
|
|
33
|
+
super();
|
|
34
|
+
this.state = {};
|
|
35
|
+
}<% } else { %>
|
|
36
|
+
/**
|
|
37
|
+
* Define types for your props for stability.
|
|
38
|
+
*/
|
|
39
|
+
static propTypes = {};
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* If a prop is not required, it is a good idea to provide
|
|
43
|
+
* it a default value
|
|
44
|
+
*/
|
|
45
|
+
static defaultProps = {};
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Setup the component. Best practices are to keep this light,
|
|
49
|
+
* and offload complex behavior to methods.
|
|
50
|
+
*/
|
|
51
|
+
constructor(props:object) {
|
|
52
|
+
super(props);
|
|
53
|
+
this.state = {};<% if (client === 'reflux') { %>
|
|
54
|
+
this.stores = [];
|
|
55
|
+
this.storeKeys = [];<% } %>
|
|
56
|
+
}<% } %>
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* This method runs after the component output has been rendered to the DOM.
|
|
60
|
+
* This is where you can start to interact with HTML elements, such as <div>,
|
|
61
|
+
* or attach event listeners to DOM elements.
|
|
62
|
+
*/
|
|
63
|
+
componentDidMount() { }
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* This is where the DOM will be torn down. A good idea is to clean up any
|
|
67
|
+
* event listeners you've created in the componentDidMount() method.
|
|
68
|
+
*/
|
|
69
|
+
componentWillUnmount() {<% if (client === 'reflux' && !isStore) { %> super.componentWillUnmount();<% }%> }
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* This is the main render method, and will rerun anytime either this.state or this.props is changed.
|
|
73
|
+
*/
|
|
74
|
+
render() {
|
|
75
|
+
return (
|
|
76
|
+
<div id="<% if (isComponent) { %><%= cssCaseName %>-component<% } else { %><%= cssCaseName %><% } %>">
|
|
77
|
+
<h2>Find me in <%= myPath %></h2>
|
|
78
|
+
</div>
|
|
79
|
+
);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
const <%= className %> = compose(
|
|
84
|
+
withTracker(() => {}),<% if(graphql === 'apollo') { %>
|
|
85
|
+
//graphql(gql`query Todos { todos }`, { variables: {/* input */} }),<% } %><% if(theme === 'material') { %>
|
|
86
|
+
withStyles(styles),<% } %>
|
|
87
|
+
)(<%= className %>Component);
|
|
88
|
+
|
|
89
|
+
export { <%= className %> };
|
|
File without changes
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { compose } from 'ramda'; // https://ramdajs.com/docs/#compose
|
|
2
|
+
import React, { Component } from 'react';
|
|
3
|
+
// https://github.com/meteor/react-packages/tree/master/packages/react-meteor-data#withtrackerreactivefn-higher-order-component
|
|
4
|
+
import { withTracker } from 'meteor/react-meteor-data';<% if(graphql === 'apollo') { %>
|
|
5
|
+
import { gql } from '@apollo/client';
|
|
6
|
+
// https://www.apollographql.com/docs/react/api/react/hoc/#graphqlquery-configcomponent
|
|
7
|
+
import { graphql } from '@apollo/client/react/hoc';<% } %><% if (theme === 'material' ) { %>
|
|
8
|
+
// https://material-ui.com/styles/basics/#higher-order-component-api
|
|
9
|
+
import { withStyles } from '@mui/styles';
|
|
10
|
+
|
|
11
|
+
const styles = (theme) => { };<% } %>
|
|
12
|
+
class <%= className %>Component extends Component {
|
|
13
|
+
/**
|
|
14
|
+
* Define types for your props for stability.
|
|
15
|
+
*/
|
|
16
|
+
static propTypes = {};
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* If a prop is not required, it is a good idea to provide
|
|
20
|
+
* it a default value
|
|
21
|
+
*/
|
|
22
|
+
static defaultProps = {};
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Setup the component. Best practices are to keep this light,
|
|
26
|
+
* and offload complex behavior to methods.
|
|
27
|
+
*/
|
|
28
|
+
constructor(props) {
|
|
29
|
+
super(props);
|
|
30
|
+
this.state = {};
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* This method runs after the component output has been rendered to the DOM.
|
|
35
|
+
* This is where you can start to interact with HTML elements, such as <div>,
|
|
36
|
+
* or attach event listeners to DOM elements.
|
|
37
|
+
*/
|
|
38
|
+
componentDidMount() { }
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* This is where the DOM will be torn down. A good idea is to clean up any
|
|
42
|
+
* event listeners you've created in the componentDidMount() method.
|
|
43
|
+
*/
|
|
44
|
+
componentWillUnmount() { }
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* This is the main render method, and will rerun anytime either this.state or this.props is changed.
|
|
48
|
+
*/
|
|
49
|
+
render() {
|
|
50
|
+
return (
|
|
51
|
+
<div id="<%= cssCaseName %>-component">
|
|
52
|
+
<% if (isLayout) { %>{ this.props.children }<% } else { %><h2>Find me in <%= myPath %></h2><% } %>
|
|
53
|
+
</div>
|
|
54
|
+
);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
const <%= className %> = compose(
|
|
59
|
+
withTracker(() => {}),<% if(graphql === 'apollo') { %>
|
|
60
|
+
//graphql(gql`query Todos { todos }`, { variables: {/* input */} }),<% } %><% if(theme === 'material') { %>
|
|
61
|
+
withStyles(styles),<% } %>
|
|
62
|
+
)(<%= className %>Component);
|
|
63
|
+
|
|
64
|
+
export { <%= className %> };
|
|
File without changes
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { compose } from 'ramda'; // https://ramdajs.com/docs/#compose
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import PropTypes from 'prop-types';// https://github.com/meteor/react-packages/tree/master/packages/react-meteor-data#withtrackerreactivefn-higher-order-component
|
|
4
|
+
import { withTracker } from 'meteor/react-meteor-data';<% if(graphql === 'apollo') { %>
|
|
5
|
+
import { gql } from '@apollo/client';
|
|
6
|
+
// https://www.apollographql.com/docs/react/api/react/hoc/#graphqlquery-configcomponent
|
|
7
|
+
import { graphql } from '@apollo/client/react/hoc';<% } %><% if (theme === 'material' ) { %>
|
|
8
|
+
// https://material-ui.com/styles/basics/#higher-order-component-api
|
|
9
|
+
import { withStyles } from '@mui/styles';
|
|
10
|
+
|
|
11
|
+
const styles = (theme) => { };<% } %>
|
|
12
|
+
interface I<%= className %> {
|
|
13
|
+
props: object;
|
|
14
|
+
state: object;
|
|
15
|
+
}
|
|
16
|
+
class <%= className %>Component extends Component<I<%= className %>%> {
|
|
17
|
+
/**
|
|
18
|
+
* Define types for your props for stability.
|
|
19
|
+
*/
|
|
20
|
+
static propTypes = {};
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* If a prop is not required, it is a good idea to provide
|
|
24
|
+
* it a default value
|
|
25
|
+
*/
|
|
26
|
+
static defaultProps = {};
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Setup the component. Best practices are to keep this light,
|
|
30
|
+
* and offload complex behavior to methods.
|
|
31
|
+
*/
|
|
32
|
+
constructor(props:object) {
|
|
33
|
+
super(props);
|
|
34
|
+
this.state = {};
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* This method runs after the component output has been rendered to the DOM.
|
|
39
|
+
* This is where you can start to interact with HTML elements, such as <div>,
|
|
40
|
+
* or attach event listeners to DOM elements.
|
|
41
|
+
*/
|
|
42
|
+
componentDidMount() { }
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* This is where the DOM will be torn down. A good idea is to clean up any
|
|
46
|
+
* event listeners you've created in the componentDidMount() method.
|
|
47
|
+
*/
|
|
48
|
+
componentWillUnmount() { }
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* This is the main render method, and will rerun anytime either this.state or this.props is changed.
|
|
52
|
+
*/
|
|
53
|
+
render() {
|
|
54
|
+
return (
|
|
55
|
+
<div id="<%= cssCaseName %>-component">
|
|
56
|
+
<% if (isLayout) { %>{ this.props.children }<% } else { %><h2>Find me in <%= myPath %></h2><% } %>
|
|
57
|
+
</div>
|
|
58
|
+
);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
const <%= className %> = compose(
|
|
63
|
+
withTracker(() => {}),<% if(graphql === 'apollo') { %>
|
|
64
|
+
//graphql(gql`query Todos { todos }`, { variables: {/* input */} }),<% } %><% if(theme === 'material') { %>
|
|
65
|
+
withStyles(styles),<% } %>
|
|
66
|
+
)(<%= className %>Component);
|
|
67
|
+
|
|
68
|
+
export { <%= className %> };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import React, { useState } from 'react';
|
|
2
|
+
// https://github.com/meteor/react-packages/tree/master/packages/react-meteor-data#usetrackerreactivefn-deps-hook
|
|
3
|
+
import { useTracker } from 'meteor/react-meteor-data';<% if(graphql === 'apollo') { %>
|
|
4
|
+
// https://www.apollographql.com/docs/react/api/react/hooks/#example-2
|
|
5
|
+
import { useQuery, gql } from '@apollo/client';<% } %><% if (theme === 'material' ) { %>
|
|
6
|
+
// https://material-ui.com/styles/basics/#higher-order-component-api
|
|
7
|
+
import { makeStyles } from '@mui/styles';
|
|
8
|
+
const useStyles = makeStyles((theme) => ({}));<% } %>
|
|
9
|
+
|
|
10
|
+
function <%= className %>(props) {
|
|
11
|
+
/*const { userId } = useTracker(() => {
|
|
12
|
+
const userId = Meteor.userId();
|
|
13
|
+
return { userId }
|
|
14
|
+
});*/<% if(graphql === 'apollo') { %>
|
|
15
|
+
//const { loading, error, data } = useQuery(gql`query Todos { todos }`, { variables: {/* input */} }); <% } %><% if (theme === 'material') { %>
|
|
16
|
+
const classes = useStyles();<% } %>
|
|
17
|
+
|
|
18
|
+
return (
|
|
19
|
+
<div>
|
|
20
|
+
<% if (isLayout) { %>{ props.children }<% } else { %><h2>Find me in <%= myPath %></h2><% } %>
|
|
21
|
+
</div>
|
|
22
|
+
);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export { <%= className %> };
|
|
File without changes
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
// https://github.com/meteor/react-packages/tree/master/packages/react-meteor-data#usetrackerreactivefn-deps-hook
|
|
3
|
+
import { useTracker } from 'meteor/react-meteor-data';<% if(graphql === 'apollo') { %>
|
|
4
|
+
// https://www.apollographql.com/docs/react/api/react/hooks/#example-2
|
|
5
|
+
import { useQuery, gql } from '@apollo/client';<% } %><% if (theme === 'material' ) { %>
|
|
6
|
+
// https://material-ui.com/styles/basics/#higher-order-component-api
|
|
7
|
+
import { makeStyles } from '@mui/styles';
|
|
8
|
+
const useStyles = makeStyles((theme) => ({});<% } %>
|
|
9
|
+
|
|
10
|
+
function <%= className %>(props) {
|
|
11
|
+
/*const { userId } = useTracker(() => {
|
|
12
|
+
const userId = Meteor.userId();
|
|
13
|
+
return { userId }
|
|
14
|
+
});*/<% if(graphql === 'apollo') { %>
|
|
15
|
+
// const { loading, error, data } = useQuery(gql`query Todos { todos }`, { variables: {/* input */} }); <% } %><% if (theme === 'material') { %>
|
|
16
|
+
const classes = useStyles();<% } %>
|
|
17
|
+
|
|
18
|
+
return (
|
|
19
|
+
<div>
|
|
20
|
+
<% if (isLayout) { %>{ props.children }<% } else { %><h2>Find me in <%= myPath %></h2><% } %>
|
|
21
|
+
</div>
|
|
22
|
+
);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export { <%= className %> };
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
<% if (client === 'vanilla') { %>if (this.window.location.pathname === '<%= url %>') {
|
|
2
|
+
import <%= camelCaseName %>Page from '/imports/ui/pages/<%= fileCase %>/<%= fileCase %>';
|
|
3
|
+
}<% } else { %>
|
|
4
|
+
<% if (newForm) { %>const <%= templateName %> = (<% } %>
|
|
5
|
+
<Route path="<%= url %>" component={Component.<%= layout %>}>
|
|
6
|
+
<IndexRoute component={Component.<%= templateName %>}/>
|
|
7
|
+
</Route>
|
|
8
|
+
<% if (newForm) { %>);<% } %><% } %>
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
<% if (client === 'vanilla') { %>if (this.window.location.pathname === '<%= url %>') {
|
|
2
|
+
import <%= camelCaseName %>Page from '/imports/ui/pages/<%= fileCase %>/<%= fileCase %>';
|
|
3
|
+
}<% } else { %>
|
|
4
|
+
<% if (newForm) { %>const <%= templateName %> = (<% } %>
|
|
5
|
+
<Route path="<%= url %>" component={Component.<%= layout %>}>
|
|
6
|
+
<IndexRoute component={Component.<%= templateName %>}/>
|
|
7
|
+
</Route>
|
|
8
|
+
<% if (newForm) { %>);<% } %><% } %>
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
<% if (client === 'vanilla') { %>if (this.window.location.pathname === '<%= url %>') {
|
|
2
|
+
import <%= camelCaseName %>Page from '/imports/ui/pages/<%= fileCase %>/<%= fileCase %>';
|
|
3
|
+
}<% } else { %>
|
|
4
|
+
<% if (newForm) { %>const <%= templateName %> = (<% } %>
|
|
5
|
+
<Route path="<%= url %>" component={Component.<%= layout %>}>
|
|
6
|
+
<IndexRoute component={Component.<%= templateName %>}/>
|
|
7
|
+
</Route>
|
|
8
|
+
<% if (newForm) { %>);<% } %><% } %>
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
<% if (client === 'vanilla') { %>if (this.window.location.pathname === '<%= url %>') {
|
|
2
|
+
import <%= camelCaseName %>Page from '/imports/ui/pages/<%= fileCase %>/<%= fileCase %>';
|
|
3
|
+
}<% } else { %>
|
|
4
|
+
<% if (newForm) { %>const <%= templateName %> = (<% } %>
|
|
5
|
+
<Route path="<%= url %>" component={Component.<%= layout %>}>
|
|
6
|
+
<IndexRoute component={Component.<%= templateName %>}/>
|
|
7
|
+
</Route>
|
|
8
|
+
<% if (newForm) { %>);<% } %><% } %>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { Meteor } from 'meteor/meteor';
|
|
2
|
+
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import { render, unmountComponentAtNode } from "react-dom";
|
|
5
|
+
import { act } from "react-dom/test-utils";
|
|
6
|
+
|
|
7
|
+
if (Meteor.isClient) {<% if(graphql === 'apollo') { %>
|
|
8
|
+
import { MockedProvider } from '@apollo/react-testing';
|
|
9
|
+
import gql from 'graphql-tag';
|
|
10
|
+
const mocks = [
|
|
11
|
+
{
|
|
12
|
+
request: {
|
|
13
|
+
query: gql`query { trucks }`, // consider importing the query from the actual component
|
|
14
|
+
variables: {
|
|
15
|
+
sample: 'variable'
|
|
16
|
+
},
|
|
17
|
+
},
|
|
18
|
+
result: {
|
|
19
|
+
data: {
|
|
20
|
+
trucks: 'hello trucks'
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
];
|
|
25
|
+
<% } %>
|
|
26
|
+
let container = null;
|
|
27
|
+
beforeEach(() => {
|
|
28
|
+
// setup a DOM element as a render target
|
|
29
|
+
container = document.createElement("div");
|
|
30
|
+
document.body.appendChild(container);
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
afterEach(() => {
|
|
34
|
+
// cleanup on exiting
|
|
35
|
+
unmountComponentAtNode(container);
|
|
36
|
+
container.remove();
|
|
37
|
+
container = null;
|
|
38
|
+
});
|
|
39
|
+
|
|
40
|
+
const { <%=className%>%> } = require('./<%= fileName %>');
|
|
41
|
+
describe('<<%= className %>/>', function() {
|
|
42
|
+
|
|
43
|
+
it('did render', () => {
|
|
44
|
+
act(() => {<% if(graphql === 'apollo') { %>
|
|
45
|
+
render(
|
|
46
|
+
<MockedProvider mocks={mocks} addTypename={false}>
|
|
47
|
+
<<%= className %>/>
|
|
48
|
+
</MockedProvider>, container
|
|
49
|
+
);<% } else { %>
|
|
50
|
+
render(<<%= className %>/>, container);<% } %>
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
expect(container.textContent).toBe(<% if (isLayout) { %>""<% } else { %>"Find me in <%= myPath %>"<% } %>);
|
|
54
|
+
});
|
|
55
|
+
});
|
|
56
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|