Skip to content

Commit 6cbcfdd

Browse files
authored
Merge pull request #285 from open-source-labs/staging
Update to 0.6.0
2 parents 84d0ab0 + be6cc6d commit 6cbcfdd

File tree

117 files changed

+5166
-3339
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

117 files changed

+5166
-3339
lines changed

.babelrc

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
"plugins": [
1313
["@babel/transform-runtime"],
1414
["@babel/proposal-class-properties"],
15-
["@babel/proposal-object-rest-spread"]
15+
["@babel/proposal-object-rest-spread"],
16+
["@babel/plugin-syntax-dynamic-import"]
1617
]
1718
}

.gitignore

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ node_modules/
1111
*.compiled.*
1212
package-lock.json
1313
coverage/
14+
.vscode
1415

1516
# Folder config file #
1617
######################
@@ -61,4 +62,8 @@ ehthumbs.db
6162
protos/
6263

6364
# testing #
64-
test/snapshot.png
65+
test/subSuites/*.png
66+
67+
68+
# db #
69+
.env

.travis.yml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
language: node_js
2+
node_js:
3+
- '10.16.2'
4+
addons:
5+
apt:
6+
packages:
7+
- xvfb
8+
before_install:
9+
- export DISPLAY=':99.0'
10+
- Xvfb :99 -screen 0 1024x768x24 > /dev/null 2>&1 &
11+
cache: npm

README.md

Lines changed: 31 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ Swell is currently available for OS X, Linux and Windows.
2121
Swell is a one-stop shop for sending and monitoring your API requests
2222

2323
* Send and monitor streams over HTTP2 (including SSEs) and WebSockets
24-
* Create GraphQL queries, mutations, and subscriptions
24+
* Create GraphQL queries, introspections, mutations, and subscriptions
2525
* Provides full streaming testing support for gRPC
2626
* Support for up to six concurrent connections
2727
* View request/response timing information in an interactive chart
@@ -34,7 +34,7 @@ Swell is a one-stop shop for sending and monitoring your API requests
3434
style="float: left; margin-right: 10px; margin-bottom : 30px; margin-top : 10px; border: 1px solid black;" /></kbd>
3535

3636
* *Server-Sent Events (SSE)*: Swell displays SSE events one by one as they come in.
37-
<kbd><img src="./ReadMeGifs/Swell_API_3_SSE.gif"
37+
<kbd><img src="./ReadMeGifs/Swell_API_SSE.gif"
3838
style="float: left; margin-right: 10px; margin-bottom : 30px; margin-top : 10px;" /></kbd>
3939

4040

@@ -47,21 +47,36 @@ Swell is a one-stop shop for sending and monitoring your API requests
4747
<kbd><img src="./ReadMeGifs/Swell_API_GraphQL_Query.gif"
4848
style="float: left; margin-right: 10px;margin-bottom : 30px; margin-top : 10px;" /></kbd>
4949

50-
### **Latest Swell v.0.4.0 update**
50+
5151
* *gRPC*: Swell includes full support for all four streaming types of gRPC - unary, client stream, server stream, bidirectional stream
5252
<kbd><img src="./ReadMeGifs/Swell_API_gRPC.gif"
5353
style="float: left; margin-right: 10px;margin-bottom : 30px; margin-top : 10px;" /></kbd>
54+
55+
### **Latest Swell v.0.6.0 update**
56+
* *New Look*: Improved navigation and faster rendering processes
57+
<kbd><img src="./ReadMeGifs/ui-showcase.gif"
58+
style="float: left; margin-right: 10px;margin-bottom : 30px; margin-top : 10px;" /></kbd>
59+
60+
* *GraphQL*: Schema Introspection and smart code editor features
61+
<kbd><img src="./ReadMeGifs/introspection.gif"
62+
style="float: left; margin-right: 10px;margin-bottom : 30px; margin-top : 10px;" /></kbd>
63+
64+
* *gRPC*: Front-end for the gRPC composer section has been heavily optimized and refactored. Unnecessary component re-renders, as well as extraneous Redux reducer dispatch actions have been eliminated.
65+
<kbd><img src="./ReadMeGifs/Swell_API_gRPC.gif"
66+
style="float: left; margin-right: 10px;margin-bottom : 30px; margin-top : 10px;" /></kbd>
5467

5568
## Additional Features
5669
* *Collections*: Swell allows you to save collections for easier testing of multiple requests.
70+
* *Import/Export Collections*: Swell allows you to import and export collections, making it easy to share collections with your team.
5771
<kbd><img src="./ReadMeGifs/Swell_API_Collections.gif"
5872
style="float: left; margin-right: 10px; margin-bottom : 30px; margin-top : 10px; border: 1px solid black;" /></kbd>
5973

74+
## How to run tests
6075

61-
* *Import/Export Collections*: Swell allows you to import and export collections, making it easy to share collections with your team.
62-
<kbd><img src="./ReadMeGifs/Swell_API_ImportExportCol.gif"
63-
style="float: left; margin-right: 10px; margin-bottom : 30px; margin-top : 10px; border: 1px solid black;" /></kbd>
76+
To run functional tests that check for functionality of each API network protocol, use: "npm run test-mocha"
6477

78+
Note: For the HTTP test to work, you will have to add a .env file with any MONGO URI.
79+
E.g., MONGO_URI = "mongodb+srv://YOUR_URL"
6580

6681
## Built With
6782
* Electron
@@ -75,6 +90,16 @@ Swell is a one-stop shop for sending and monitoring your API requests
7590

7691
## Authors
7792

93+
* **Grace Kim** - [gracekiim](https://github.com/gracekiim)
94+
* **Alex Sanhueza** - [alexsanhueza](https://github.com/alexsanhueza)
95+
* **Wyatt Bell** - [wcbell51](https://github.com/wcbell51)
96+
* **John Madrigal** - [johnmadrigal](https://github.com/johnmadrigal)
97+
* **Michael Miller** - [mjmiguel](https://github.com/mjmiguel)
98+
* **Hideaki Aomori** - [h15200](https://github.com/h15200)
99+
* **Matt Gin** - [chinsonhoag](https://github.com/chunsonhoag)
100+
* **Nick Healy** - [nickhealy](http://github.com/nickhealy)
101+
* **Grace Spletzer** - [gspletzer](https://github.com/gspletzer)
102+
* **Stephanie Wood** - [stephwood](https://github.com/stephwood)
78103
* **Anthony Terruso** - [discrete projects](https://github.com/discrete-projects)
79104
* **Brandon Marrero** - [brandon6190](https://github.com/brandon6190)
80105
* **Jason Ou** - [jasonou1994](https://github.com/jasonou1994)
-5.72 MB
Loading
Loading
-2.88 MB
Loading

ReadMeGifs/Swell_API_Collections.gif

-6.63 MB
Loading
6.98 MB
Loading

ReadMeGifs/Swell_API_SSE.gif

-4.84 MB
Loading

ReadMeGifs/Swell_API_WebSockets.gif

-6.77 MB
Loading

ReadMeGifs/Swell_API_gRPC.gif

-1.76 MB
Loading

ReadMeGifs/Swell_API_gRPC_smol.gif

-8.48 MB
Binary file not shown.

ReadMeGifs/introspection.gif

6.34 MB
Loading

ReadMeGifs/ui-showcase.gif

5.95 MB
Loading

__tests__/httpTest.js

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
import React from "react";
2+
import { shallow, configure } from "enzyme";
3+
import Adapter from "enzyme-adapter-react-16";
4+
import ResponseEventsDisplay from "../src/client/components/display/ResponseEventsDisplay.jsx";
5+
import FieldEntryForm from "../src/client/components/composer/NewRequest/FieldEntryForm";
6+
import SingleReqResContainer from '../src/client/components/containers/SingleReqResContainer'
7+
8+
configure({ adapter: new Adapter() });
9+
10+
describe('HTTP/S requests', () => {
11+
describe('public API', () => {
12+
it('it should GET information from a public API', () => {
13+
const props = {
14+
newRequestFields: {
15+
method: "GET",
16+
protocol: "https://",
17+
url: "https://pokeapi.co/api/v2/pokemon?limit=2"
18+
}
19+
};
20+
const response = {
21+
content: {
22+
response: {
23+
headers: {
24+
status: 200
25+
},
26+
events: [{'count': 964}]
27+
}
28+
}
29+
}
30+
const fieldWrapper = shallow(<FieldEntryForm {...props} />);
31+
fieldWrapper.setState({reqResAdd: jest.fn()})
32+
const wrapper = shallow(<ResponseEventsDisplay {...response} />);
33+
expect(wrapper.find("JSONPretty")).toHaveLength(1);
34+
});
35+
})
36+
})

build/config.gypi

Lines changed: 209 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,209 @@
1+
# Do not edit. File was generated by node-gyp's "configure" step
2+
{
3+
"target_defaults": {
4+
"cflags": [],
5+
"default_configuration": "Release",
6+
"defines": [],
7+
"include_dirs": [],
8+
"libraries": []
9+
},
10+
"variables": {
11+
"asan": 0,
12+
"build_v8_with_gn": "false",
13+
"coverage": "false",
14+
"dcheck_always_on": 0,
15+
"debug_nghttp2": "false",
16+
"debug_node": "false",
17+
"enable_lto": "false",
18+
"enable_pgo_generate": "false",
19+
"enable_pgo_use": "false",
20+
"force_dynamic_crt": 0,
21+
"host_arch": "x64",
22+
"icu_data_in": "../../deps/icu-small/source/data/in/icudt67l.dat",
23+
"icu_default_data": "",
24+
"icu_endianness": "l",
25+
"icu_gyp_path": "tools/icu/icu-generic.gyp",
26+
"icu_locales": "en,root",
27+
"icu_path": "deps/icu-small",
28+
"icu_small": "true",
29+
"icu_ver_major": "67",
30+
"is_debug": 0,
31+
"llvm_version": "11.0",
32+
"napi_build_version": "6",
33+
"node_byteorder": "little",
34+
"node_debug_lib": "false",
35+
"node_enable_d8": "false",
36+
"node_install_npm": "true",
37+
"node_module_version": 72,
38+
"node_no_browser_globals": "false",
39+
"node_prefix": "/",
40+
"node_release_urlbase": "https://nodejs.org/download/release/",
41+
"node_shared": "false",
42+
"node_shared_brotli": "false",
43+
"node_shared_cares": "false",
44+
"node_shared_http_parser": "false",
45+
"node_shared_libuv": "false",
46+
"node_shared_nghttp2": "false",
47+
"node_shared_openssl": "false",
48+
"node_shared_zlib": "false",
49+
"node_tag": "",
50+
"node_target_type": "executable",
51+
"node_use_bundled_v8": "true",
52+
"node_use_dtrace": "true",
53+
"node_use_etw": "false",
54+
"node_use_node_code_cache": "true",
55+
"node_use_node_snapshot": "true",
56+
"node_use_openssl": "true",
57+
"node_use_v8_platform": "true",
58+
"node_with_ltcg": "false",
59+
"node_without_node_options": "false",
60+
"openssl_fips": "",
61+
"openssl_is_fips": "false",
62+
"shlib_suffix": "72.dylib",
63+
"target_arch": "x64",
64+
"v8_enable_gdbjit": 0,
65+
"v8_enable_i18n_support": 1,
66+
"v8_enable_inspector": 1,
67+
"v8_enable_lite_mode": 0,
68+
"v8_no_strict_aliasing": 1,
69+
"v8_optimized_debug": 1,
70+
"v8_promise_internal_field_count": 1,
71+
"v8_random_seed": 0,
72+
"v8_trace_maps": 0,
73+
"v8_use_siphash": 1,
74+
"v8_use_snapshot": 1,
75+
"want_separate_host_toolset": 0,
76+
"xcode_version": "11.0",
77+
"nodedir": "/Users/grace/.electron-gyp/9.2.0",
78+
"standalone_static_library": 1,
79+
"dry_run": "",
80+
"legacy_bundling": "",
81+
"save_dev": "",
82+
"browser": "",
83+
"commit_hooks": "true",
84+
"only": "",
85+
"viewer": "man",
86+
"also": "",
87+
"rollback": "true",
88+
"sign_git_commit": "",
89+
"audit": "true",
90+
"usage": "",
91+
"runtime": "electron",
92+
"fallback_to_build": "true",
93+
"globalignorefile": "/usr/local/etc/npmignore",
94+
"init_author_url": "",
95+
"maxsockets": "50",
96+
"shell": "/bin/bash",
97+
"build_from_source": "true",
98+
"metrics_registry": "https://registry.npmjs.org/",
99+
"parseable": "",
100+
"shrinkwrap": "true",
101+
"init_license": "ISC",
102+
"timing": "",
103+
"target_platform": "darwin",
104+
"if_present": "",
105+
"cache_max": "Infinity",
106+
"init_author_email": "",
107+
"sign_git_tag": "",
108+
"cert": "",
109+
"git_tag_version": "true",
110+
"local_address": "",
111+
"long": "",
112+
"preid": "",
113+
"fetch_retries": "2",
114+
"registry": "https://registry.npmjs.org/",
115+
"key": "",
116+
"message": "%s",
117+
"versions": "",
118+
"globalconfig": "/usr/local/etc/npmrc",
119+
"always_auth": "",
120+
"logs_max": "10",
121+
"prefer_online": "",
122+
"cache_lock_retries": "10",
123+
"global_style": "",
124+
"update_notifier": "true",
125+
"platform": "darwin",
126+
"audit_level": "low",
127+
"heading": "npm",
128+
"fetch_retry_mintimeout": "10000",
129+
"offline": "",
130+
"read_only": "",
131+
"searchlimit": "20",
132+
"access": "",
133+
"json": "",
134+
"allow_same_version": "",
135+
"description": "true",
136+
"engine_strict": "",
137+
"https_proxy": "",
138+
"init_module": "/Users/grace/.npm-init.js",
139+
"userconfig": "/Users/grace/.npmrc",
140+
"cidr": "",
141+
"node_version": "12.18.3",
142+
"user": "",
143+
"target": "9.2.0",
144+
"auth_type": "legacy",
145+
"editor": "vi",
146+
"ignore_prepublish": "",
147+
"save": "true",
148+
"script_shell": "",
149+
"tag": "latest",
150+
"before": "",
151+
"global": "",
152+
"progress": "true",
153+
"ham_it_up": "",
154+
"optional": "true",
155+
"searchstaleness": "900",
156+
"bin_links": "true",
157+
"force": "",
158+
"save_prod": "",
159+
"searchopts": "",
160+
"depth": "Infinity",
161+
"node_gyp": "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js",
162+
"rebuild_bundle": "true",
163+
"sso_poll_frequency": "500",
164+
"unicode": "true",
165+
"fetch_retry_maxtimeout": "60000",
166+
"ca": "",
167+
"save_prefix": "^",
168+
"scripts_prepend_node_path": "warn-only",
169+
"sso_type": "oauth",
170+
"strict_ssl": "true",
171+
"tag_version_prefix": "v",
172+
"dev": "",
173+
"fetch_retry_factor": "10",
174+
"group": "20",
175+
"save_exact": "",
176+
"cache_lock_stale": "60000",
177+
"prefer_offline": "",
178+
"version": "",
179+
"disturl": "https://electronjs.org/headers",
180+
"cache_min": "10",
181+
"otp": "",
182+
"cache": "/Users/grace/.npm",
183+
"searchexclude": "",
184+
"update_binary": "true",
185+
"color": "true",
186+
"package_lock": "true",
187+
"fund": "true",
188+
"package_lock_only": "",
189+
"save_optional": "",
190+
"user_agent": "npm/6.14.6 node/v12.18.3 darwin x64",
191+
"ignore_scripts": "",
192+
"cache_lock_wait": "10000",
193+
"production": "",
194+
"save_bundle": "",
195+
"send_metrics": "",
196+
"init_version": "1.0.0",
197+
"node_options": "",
198+
"umask": "0022",
199+
"scope": "",
200+
"git": "git",
201+
"init_author_name": "",
202+
"onload_script": "",
203+
"tmp": "/var/folders/kc/5h05ytss729963ty9tbxrgxw0000gn/T",
204+
"unsafe_perm": "true",
205+
"format_package_lock": "true",
206+
"link": "",
207+
"prefix": "/usr/local"
208+
}
209+
}

grpc_mockData/server.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ async function sayHellosSs(ctx) {
5555
const reqMessages = { message: "hello!!! " + ctx.req.name };
5656
// combine template with reqMessage
5757
const updatedStream = [...dataStream, reqMessages];
58-
const makeStreamData = await hl(updatedStream);
58+
const makeStreamData = hl(updatedStream);
5959
ctx.res = makeStreamData;
6060
// ends server stream
6161
ctx.res.end();
@@ -81,7 +81,7 @@ async function sayHelloCs(ctx) {
8181
.collect()
8282
.toCallback((err, result) => {
8383
if (err) return reject(err);
84-
console.log("messages ->", messages);
84+
// console.log("messages ->", messages);
8585
ctx.response.res = { message: `received ${messages.length} messages` };
8686
return resolve();
8787
});

0 commit comments

Comments
 (0)