Skip to content

Commit 689fdd9

Browse files
committed
resolve merge conflicts
2 parents 6aaf8ca + d754e4c commit 689fdd9

File tree

16 files changed

+103
-49
lines changed

16 files changed

+103
-49
lines changed

__mocks__/electron.ts

Lines changed: 0 additions & 6 deletions
This file was deleted.

__tests__/componentReducer.test.ts

Lines changed: 101 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ describe('Testing componentReducer functionality', function () {
1111
// TEST 'ADD COMPONENT'
1212
describe('ADD COMPONENT reducer', () => {
1313
it('should add new reuseable component to state', () => {
14-
const action = {
14+
const action: Action = {
1515
type: 'ADD COMPONENT',
1616
payload: {
1717
componentName: "TestRegular",
@@ -30,7 +30,7 @@ describe('Testing componentReducer functionality', function () {
3030
// TEST 'ADD CHILD'
3131
describe('ADD CHILD reducer', () => {
3232
it('should add child component to top-level component', () => {
33-
const action = {
33+
const action: Action = {
3434
type: 'ADD CHILD',
3535
payload: {
3636
type: 'Component',
@@ -40,45 +40,136 @@ describe('Testing componentReducer functionality', function () {
4040
}
4141
// switch focus to very first root component
4242
state.canvasFocus = { componentId: 1, childId: null };
43-
console.log(state);
4443
state = reducer(state, action);
4544
const newParent = state.components[0];
4645
// expect new parent's children array to have length 1
4746
expect(newParent.children.length).toEqual(1);
4847
// expect new child to have type 'Component'
49-
console.log('new child ', newParent.children[0]);
5048
expect(newParent.children[0].type).toEqual('Component');
5149
const addedChild = state.components.find(comp => comp.id === newParent.children[0].typeId);
5250
// expect new child typeId to correspond to component with name 'TestRegular'
5351
expect(addedChild.name).toEqual('TestRegular');
5452
})
5553
})
56-
54+
55+
// TEST 'CHANGE POSITION'
56+
describe('CHANGE POSITION reducer ', () => {
57+
it('should move position of an instance', () => {
58+
const actionHtml: Action = {
59+
type: 'ADD CHILD',
60+
payload: {
61+
type: 'HTML Element',
62+
typeId: 9,
63+
childId: null
64+
}
65+
}
66+
state = reducer(state, actionHtml);
67+
const actionChangePos: Action = {
68+
type: 'CHANGE POSITION',
69+
payload: {
70+
currentChildId: 1,
71+
newParentChildId: null
72+
}
73+
}
74+
state = reducer(state, actionChangePos);
75+
const changeParent = state.components.find(comp => comp.id === state.canvasFocus.componentId);
76+
const changeParentChildLength = changeParent.children.length;
77+
// expect last child of parent to be moved Component element
78+
expect(changeParent.children[changeParentChildLength-1].type).toEqual('Component');
79+
// expect last child of parent to have current child ID of payload
80+
expect(changeParent.children[changeParentChildLength-1].childId).toEqual(1);
81+
})
82+
})
83+
84+
// TEST 'DELETE CHILD'
85+
describe('DELETE CHILD reducer', () => {
86+
it('should delete child of focused top-level component', () => {
87+
// canvas still focused on childId: 2, which is an HTML element
88+
const action: Action = {
89+
type: 'DELETE CHILD'
90+
}
91+
state = reducer(state, action);
92+
// expect only one remaining child
93+
const delParent = state.components.find(comp => comp.id === state.canvasFocus.componentId);
94+
// expect remaining child to have type 'Component'
95+
expect(delParent.children.length).toEqual(1);
96+
expect(delParent.children[delParent.children.length -1].type).toEqual('Component');
97+
})
98+
})
99+
57100
// TEST 'CHANGE FOCUS'
58101
describe('CHANGE FOCUS reducer', () => {
59102
it('should change focus to specified component', () => {
60-
const action = {
103+
const action: Action = {
61104
type: 'CHANGE FOCUS',
62105
payload: {
63106
componentId: 2,
64107
childId: null
65108
}
66109
}
67-
console.log('before change focus ', state.canvasFocus);
68110
state = reducer(state, action);
69-
console.log('after change focus ', state.canvasFocus);
70111
expect(state.canvasFocus.componentId).toEqual(2);
71112
expect(state.canvasFocus.childId).toEqual(null);
72113
})
73114
})
74115

75116
// TEST 'UPDATE CSS'
76117
describe('UPDATE CSS reducer', () => {
77-
it('should update background color of focused component', () => {
78-
118+
it('should add style to focused component', () => {
119+
const action: Action = {
120+
type: 'UPDATE CSS',
121+
payload: {
122+
style: {
123+
backgroundColor: 'gray'
124+
}
125+
}
126+
}
127+
state = reducer(state, action);
128+
const styledComp = state.components.find(comp => comp.id === state.canvasFocus.componentId);
129+
// expect the style property on targeted comp to equal style property in payload
130+
expect(styledComp.style.backgroundColor).toEqual(action.payload.style.backgroundColor);
131+
})
132+
})
133+
134+
// TEST 'UPDATE PROJECT NAME'
135+
describe('UPDATE PROJECT NAME reducer', () => {
136+
it('should update project with specified name', () => {
137+
const action: Action = {
138+
type: 'UPDATE PROJECT NAME',
139+
payload: 'TESTNAME'
140+
}
141+
state = reducer(state, action);
142+
// expect state name to equal payload
143+
expect(state.name).toEqual(action.payload);
144+
})
145+
})
146+
147+
// TEST 'CHANGE PROJECT TYPE'
148+
describe('CHANGE PROJECT TYPE reducer', () => {
149+
it('should change project type to specified type', () => {
150+
const action: Action = {
151+
type: 'CHANGE PROJECT TYPE',
152+
payload: {
153+
projectType: 'Classic React'
154+
}
155+
};
156+
state = reducer(state, action);
157+
expect(state.projectType).toEqual(action.payload.projectType);
79158
})
80159
})
81160

82161
// TEST 'RESET STATE'
162+
describe('RESET STATE reducer', () => {
163+
it('should reset project to initial state', () => {
164+
const action: Action = {
165+
type: 'RESET STATE'
166+
}
167+
state = reducer(state, action);
168+
// expect default project to have empty string as name
169+
expect(state.name).toEqual('');
170+
// expect default project to only have one component in components array
171+
expect(state.components.length).toEqual(1);
172+
})
173+
})
83174

84175
})

app/electron/main.js

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ const MenuBuilder = require('./menu');
2424
const path = require('path');
2525
// const fs = require('fs');
2626

27-
console.log('NODE ENV is ', process.env.NODE_ENV);
2827
const isDev =
2928
process.env.NODE_ENV === 'development' || process.env.NODE_ENV === 'test';
3029
const port = 8080;
@@ -238,8 +237,6 @@ app.on('web-contents-created', (event, contents) => {
238237

239238
contents.on('will-redirect', (event, navigationUrl) => {
240239
const parsedUrl = new URL(navigationUrl);
241-
//console.log('parsedUrl is', parsedUrl);
242-
//console.log('parsedUrl.origin is', parsedUrl.origin);
243240
const validOrigins = [
244241
selfHost,
245242
'http://localhost:5000',

app/src/components/App.tsx

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,6 @@ export const App = (): JSX.Element => {
3636
});
3737
} else {
3838
// otherwise if a user is logged in, use a fetch request to load user's projects from DB
39-
// getProjects().then(projects =>
40-
// console.log('UseEffect in App getprojects() returns', projects)
41-
// );
4239
let userId;
4340
if (Cookies.get('ssid')) {
4441
userId = Cookies.get('ssid');
@@ -69,10 +66,8 @@ export const App = (): JSX.Element => {
6966
userId = window.localStorage.getItem('ssid');
7067
}
7168
if (state.isLoggedIn === false) {
72-
//console.log('Saving guest project as', state);
7369
localforage.setItem('guestProject', state);
7470
} else if (state.name !== '') {
75-
//console.log('Saving user project as', state);
7671
saveProject(state.name, state);
7772
localforage.setItem(userId, state);
7873
}

app/src/components/login/SignIn.tsx

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -121,13 +121,11 @@ const SignIn: React.FC<LoginInt & RouteComponentProps> = props => {
121121
*/
122122
const handleLogin = (e: React.MouseEvent<HTMLButtonElement, MouseEvent>) => {
123123
e.preventDefault();
124-
console.log('click fired on handleLogin');
125124
setInvalidUser(false);
126125
setInvalidUserMsg('');
127126
setInvalidPass(false);
128127
setInvalidPassMsg('');
129128
sessionIsCreated(username, password).then(loginStatus => {
130-
console.log('login fetch', loginStatus);
131129
if (loginStatus === 'Success') {
132130
props.history.push('/');
133131
} else {
@@ -157,7 +155,6 @@ const SignIn: React.FC<LoginInt & RouteComponentProps> = props => {
157155
const handleLoginGuest = (
158156
e: React.MouseEvent<HTMLButtonElement, MouseEvent>
159157
) => {
160-
console.log('Handle login guest fired');
161158
e.preventDefault();
162159
// generate "cookie" in localStorage for guest users
163160
window.localStorage.setItem('ssid', 'guest');
@@ -247,9 +244,6 @@ const SignIn: React.FC<LoginInt & RouteComponentProps> = props => {
247244

248245
<Grid container>
249246
<Grid item xs>
250-
{/* <Link href="#" variant="body2">
251-
Forgot password?
252-
</Link> */}
253247
<RouteLink to={`/signup`} className="nav_link">
254248
Forgot password?
255249
</RouteLink>

app/src/components/login/SignUp.tsx

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -182,14 +182,9 @@ const SignUp: React.FC<LoginInt & RouteComponentProps> = props => {
182182
setInvalidVerifyPassword(false);
183183
}
184184

185-
console.log('invalidUsername', invalidUsername);
186-
console.log('invalidPassword', invalidPassword);
187-
console.log('invalidEmail', invalidEmail);
188-
console.log('invalidVerifyPassword', invalidVerifyPassword);
189185
// if(!invalidUsername && !invalidPassword && !invalidEmail && !invalidVerifyPassword) {
190186
newUserIsCreated(username, email, password).then(userCreated => {
191187
if (userCreated === 'Success') {
192-
console.log('user created');
193188

194189
props.history.push('/');
195190
} else {

app/src/components/main/IndirectChild.tsx

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,6 @@ function IndirectChild({ style, children, placeHolder, linkId }) {
2525
combinedStyle = combineStyles(combinedStyle, { color: 'blue' });
2626
}
2727

28-
//console.log('children are ', children);
29-
//console.log('place holder is ', placeHolder);
3028
return (
3129
<div style={combinedStyle}>
3230
{linkId ? (

app/src/helperFunctions/auth.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ export const sessionIsCreated = (
1212
username,
1313
password
1414
});
15-
console.log(process.env.NODE_ENV);
1615
const result = fetch(`${serverURL}/login`, {
1716
method: 'POST',
1817
credentials: 'include',
@@ -25,7 +24,6 @@ export const sessionIsCreated = (
2524
return res.json();
2625
})
2726
.then(data => {
28-
console.log('the data', data);
2927
if (data.sessionId && typeof data.sessionId === 'string') {
3028
// check that a session id was passed down
3129
window.localStorage.setItem('ssid', data.sessionId);

app/src/helperFunctions/generateCode.ts

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ const generateUnformattedCode = (
2727

2828
// get metadata for each child (e.g. the name/tag of the component/elemnt)
2929
const getEnrichedChildren = (currentComponent: Component | ChildElement) => {
30-
console.log('enriching component ', currentComponent);
3130
const enrichedChildren = currentComponent.children.map((elem: any) => {
3231
const child = { ...elem };
3332
if (child.type === 'Component') {
@@ -60,7 +59,6 @@ const generateUnformattedCode = (
6059
const writeNestedElements = (enrichedChildren: any) => {
6160
return `${enrichedChildren
6261
.map((child: any) => {
63-
console.log('the child is ', child);
6462
if (child.type === 'Component') {
6563
return `<${child.name}${formatStyles(child.style)} />`;
6664
} else if (child.type === 'HTML Element') {
@@ -127,7 +125,6 @@ const generateUnformattedCode = (
127125

128126
const enrichedChildren: any = getEnrichedChildren(currentComponent);
129127

130-
console.log(enrichedChildren);
131128
const next = true;
132129

133130
// import statements differ between root (pages) and regular components (components)
@@ -248,8 +245,6 @@ const generateCode = (
248245
rootComponents: number[],
249246
projectType: string
250247
) => {
251-
console.log('generating next.js code');
252-
// return ''
253248
const code = generateUnformattedCode(
254249
components,
255250
componentId,

app/src/helperFunctions/projectGetSaveDel.ts

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ if (isDev) {
88
export const getProjects = (): Promise<any> => {
99
//console.log("Loading user's projects...");
1010
let userId = window.localStorage.getItem('ssid');
11-
//console.log('userId from localStorage is', userId);
1211
const body = JSON.stringify({ userId });
1312
const projects = fetch(`${serverURL}/getProjects`, {
1413
method: 'POST',
@@ -21,7 +20,6 @@ export const getProjects = (): Promise<any> => {
2120
})
2221
.then(res => res.json())
2322
.then(data => {
24-
//console.log("User's projects are", data);
2523
return data;
2624
})
2725
.catch(err => console.log(`Error getting project ${err}`));
@@ -32,7 +30,6 @@ export const saveProject = (
3230
name: String,
3331
workspace: Object
3432
): Promise<Object> => {
35-
//console.log("Saving user's project...");
3633
const body = JSON.stringify({
3734
name,
3835
project: workspace,
@@ -48,7 +45,6 @@ export const saveProject = (
4845
})
4946
.then(res => res.json())
5047
.then(data => {
51-
//console.log('Saved project is', data.project);
5248
return data.project;
5349
})
5450
.catch(err => console.log(`Error saving project ${err}`));

app/src/utils/createApplication.util.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@ function createIndexHtml(path, appName) {
3030
let dirComponent;
3131
if (!dir.match(/`${appName}`|\*$/)) {
3232
dir = `${dir}/${appName}`;
33-
console.log('dir is ', dir);
3433
if (!window.api.existsSync(dir)) {
3534
window.api.mkdirSync(dir);
3635
dirSrc = `${dir}/src`;

electron-builder.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ linux:
1313
- rpm
1414
- snap
1515
- AppImage
16+
maintainer: [email protected]
1617
mac:
1718
category: public.app-category.developer-tools
1819
target: dmg

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
"description": "Prototyping tool for React/Typescript Applications.",
55
"private": true,
66
"main": "app/electron/main.js",
7+
"author": "OS Labs",
78
"contributors": [
89
"Adam Singer",
910
"Charles Finocchiaro",

resources/icon.icns

-61.5 KB
Binary file not shown.

resources/icon.ico

-5.68 KB
Binary file not shown.

resources/icon.png

39.1 KB
Loading

0 commit comments

Comments
 (0)