226
CHANGELOG.md
226
CHANGELOG.md
@@ -1,5 +1,76 @@
|
|||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
|
## [v1.8.0](https://github.com/liyasthomas/postwoman/tree/v1.8.0) (2020-01-28)
|
||||||
|
|
||||||
|
[Full Changelog](https://github.com/liyasthomas/postwoman/compare/v1.5.0...v1.8.0)
|
||||||
|
|
||||||
|
**Implemented enhancements:**
|
||||||
|
|
||||||
|
- Sync collection with a cloud storage \(e.g: Google drive\) [\#507](https://github.com/liyasthomas/postwoman/issues/507)
|
||||||
|
- Application contains many hard-coded strings that aren't translatable [\#488](https://github.com/liyasthomas/postwoman/issues/488)
|
||||||
|
- ULR parsing and var auto creation [\#469](https://github.com/liyasthomas/postwoman/issues/469)
|
||||||
|
- What about additional loaders: + Pug, TypeScript, SASS, material-vue ? [\#467](https://github.com/liyasthomas/postwoman/issues/467)
|
||||||
|
- \[suggestion\] - Tests tab [\#465](https://github.com/liyasthomas/postwoman/issues/465)
|
||||||
|
- Feature Request: Consumer Driven Contract Testing [\#420](https://github.com/liyasthomas/postwoman/issues/420)
|
||||||
|
- Feature Request: Support OAuth2/OIDC [\#337](https://github.com/liyasthomas/postwoman/issues/337)
|
||||||
|
- Add DB cache [\#26](https://github.com/liyasthomas/postwoman/issues/26)
|
||||||
|
- Support for Google Chrome Extension [\#512](https://github.com/liyasthomas/postwoman/pull/512) ([AndrewBastin](https://github.com/AndrewBastin))
|
||||||
|
- GraphQL query validation based on schema [\#508](https://github.com/liyasthomas/postwoman/pull/508) ([AndrewBastin](https://github.com/AndrewBastin))
|
||||||
|
- Syntax Error marking in GraphQL query editor [\#505](https://github.com/liyasthomas/postwoman/pull/505) ([AndrewBastin](https://github.com/AndrewBastin))
|
||||||
|
- Refactoring proxy handling to be done in strategies [\#500](https://github.com/liyasthomas/postwoman/pull/500) ([AndrewBastin](https://github.com/AndrewBastin))
|
||||||
|
- Firefox Extension compatibility [\#494](https://github.com/liyasthomas/postwoman/pull/494) ([AndrewBastin](https://github.com/AndrewBastin))
|
||||||
|
- Network Strategies [\#487](https://github.com/liyasthomas/postwoman/pull/487) ([AndrewBastin](https://github.com/AndrewBastin))
|
||||||
|
- chore\(oauth\): Added method signatures as per JSDoc conventions [\#486](https://github.com/liyasthomas/postwoman/pull/486) ([jamesgeorge007](https://github.com/jamesgeorge007))
|
||||||
|
- GraphQL Type Highlight and Links [\#479](https://github.com/liyasthomas/postwoman/pull/479) ([AndrewBastin](https://github.com/AndrewBastin))
|
||||||
|
|
||||||
|
**Fixed bugs:**
|
||||||
|
|
||||||
|
- Warn the user if name field was left blank while creating a new collection [\#515](https://github.com/liyasthomas/postwoman/issues/515)
|
||||||
|
- Multiple collections with the same name shouldn't exist [\#509](https://github.com/liyasthomas/postwoman/issues/509)
|
||||||
|
- GraphQL String variables are null [\#497](https://github.com/liyasthomas/postwoman/issues/497)
|
||||||
|
- Post request body is empty [\#473](https://github.com/liyasthomas/postwoman/issues/473)
|
||||||
|
|
||||||
|
**Closed issues:**
|
||||||
|
|
||||||
|
- Allow importing Postman collections [\#524](https://github.com/liyasthomas/postwoman/issues/524)
|
||||||
|
- Request descriptions [\#511](https://github.com/liyasthomas/postwoman/issues/511)
|
||||||
|
- Ability to run all requests of a folder/collection [\#498](https://github.com/liyasthomas/postwoman/issues/498)
|
||||||
|
- Change import/export collection on requests page icon [\#495](https://github.com/liyasthomas/postwoman/issues/495)
|
||||||
|
- import cURL error [\#477](https://github.com/liyasthomas/postwoman/issues/477)
|
||||||
|
- move to postwoman org [\#475](https://github.com/liyasthomas/postwoman/issues/475)
|
||||||
|
- Create standalone vue components of the request builder. [\#474](https://github.com/liyasthomas/postwoman/issues/474)
|
||||||
|
- Enable running proxy as a backend for Request Capture [\#325](https://github.com/liyasthomas/postwoman/issues/325)
|
||||||
|
- Label doesn't change when switching between collection requests [\#291](https://github.com/liyasthomas/postwoman/issues/291)
|
||||||
|
|
||||||
|
**Merged pull requests:**
|
||||||
|
|
||||||
|
- Enhancements [\#531](https://github.com/liyasthomas/postwoman/pull/531) ([jamesgeorge007](https://github.com/jamesgeorge007))
|
||||||
|
- Merge pull request \#530 from liyasthomas/feature/post-request-tests [\#530](https://github.com/liyasthomas/postwoman/pull/530) ([liyasthomas](https://github.com/liyasthomas))
|
||||||
|
- Refactor [\#523](https://github.com/liyasthomas/postwoman/pull/523) ([liyasthomas](https://github.com/liyasthomas))
|
||||||
|
- chore\(deps\): bump nuxt-i18n from 6.4.1 to 6.5.0 [\#522](https://github.com/liyasthomas/postwoman/pull/522) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- chore\(deps\): bump v-tooltip from 2.0.2 to 2.0.3 [\#521](https://github.com/liyasthomas/postwoman/pull/521) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- chore\(deps-dev\): bump cypress from 3.8.2 to 3.8.3 [\#520](https://github.com/liyasthomas/postwoman/pull/520) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- Feature/post request tests [\#518](https://github.com/liyasthomas/postwoman/pull/518) ([nickpalenchar](https://github.com/nickpalenchar))
|
||||||
|
- Validations for edit and create collections activity [\#516](https://github.com/liyasthomas/postwoman/pull/516) ([jamesgeorge007](https://github.com/jamesgeorge007))
|
||||||
|
- Validate duplicate collections [\#510](https://github.com/liyasthomas/postwoman/pull/510) ([jamesgeorge007](https://github.com/jamesgeorge007))
|
||||||
|
- Lint and refactor [\#506](https://github.com/liyasthomas/postwoman/pull/506) ([liyasthomas](https://github.com/liyasthomas))
|
||||||
|
- Merge pull request \#504 from liyasthomas/dependabot/npm\_and\_yarn/node-sass-4.13.1 [\#504](https://github.com/liyasthomas/postwoman/pull/504) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- chore\(deps\): bump @nuxtjs/axios from 5.9.2 to 5.9.3 [\#503](https://github.com/liyasthomas/postwoman/pull/503) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- chore\(deps-dev\): bump sass-loader from 8.0.1 to 8.0.2 [\#502](https://github.com/liyasthomas/postwoman/pull/502) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- chore\(deps\): bump ace-builds from 1.4.7 to 1.4.8 [\#501](https://github.com/liyasthomas/postwoman/pull/501) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- 💚 Fixed \#497 [\#499](https://github.com/liyasthomas/postwoman/pull/499) ([pushrbx](https://github.com/pushrbx))
|
||||||
|
- Feat/firefox strategy [\#496](https://github.com/liyasthomas/postwoman/pull/496) ([liyasthomas](https://github.com/liyasthomas))
|
||||||
|
- i18n Japanese: Added new translations [\#492](https://github.com/liyasthomas/postwoman/pull/492) ([reefqi037](https://github.com/reefqi037))
|
||||||
|
- Merge pull request \#491 from liyasthomas/i18n [\#491](https://github.com/liyasthomas/postwoman/pull/491) ([liyasthomas](https://github.com/liyasthomas))
|
||||||
|
- Replaced hard-coded strings with localizable strings [\#490](https://github.com/liyasthomas/postwoman/pull/490) ([liyasthomas](https://github.com/liyasthomas))
|
||||||
|
- chore: Minor tweaks [\#485](https://github.com/liyasthomas/postwoman/pull/485) ([jamesgeorge007](https://github.com/jamesgeorge007))
|
||||||
|
- Porting \(most of\) code to typescript [\#484](https://github.com/liyasthomas/postwoman/pull/484) ([AndrewBastin](https://github.com/AndrewBastin))
|
||||||
|
- ⬆️ Bump cypress from 3.8.1 to 3.8.2 [\#483](https://github.com/liyasthomas/postwoman/pull/483) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- ⬆️ Bump sass-loader from 8.0.0 to 8.0.1 [\#482](https://github.com/liyasthomas/postwoman/pull/482) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- ⬆️ Bump @nuxtjs/google-analytics from 2.2.2 to 2.2.3 [\#481](https://github.com/liyasthomas/postwoman/pull/481) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- OAuth 2.0/OIDC Access Token Retrieval Support [\#476](https://github.com/liyasthomas/postwoman/pull/476) ([reefqi037](https://github.com/reefqi037))
|
||||||
|
- ⬆️ Bump cypress from 3.8.0 to 3.8.1 [\#460](https://github.com/liyasthomas/postwoman/pull/460) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
|
||||||
## [v1.5.0](https://github.com/liyasthomas/postwoman/tree/v1.5.0) (2020-01-04)
|
## [v1.5.0](https://github.com/liyasthomas/postwoman/tree/v1.5.0) (2020-01-04)
|
||||||
|
|
||||||
[Full Changelog](https://github.com/liyasthomas/postwoman/compare/v1.0.0...v1.5.0)
|
[Full Changelog](https://github.com/liyasthomas/postwoman/compare/v1.0.0...v1.5.0)
|
||||||
@@ -8,6 +79,7 @@
|
|||||||
|
|
||||||
- Can WSDL be implemented, similar to SoapUI? [\#461](https://github.com/liyasthomas/postwoman/issues/461)
|
- Can WSDL be implemented, similar to SoapUI? [\#461](https://github.com/liyasthomas/postwoman/issues/461)
|
||||||
- Raw Request Body should be supported to format the JSON string [\#446](https://github.com/liyasthomas/postwoman/issues/446)
|
- Raw Request Body should be supported to format the JSON string [\#446](https://github.com/liyasthomas/postwoman/issues/446)
|
||||||
|
- cookie not found support [\#443](https://github.com/liyasthomas/postwoman/issues/443)
|
||||||
- Ability to send Binary data using Postwoman [\#415](https://github.com/liyasthomas/postwoman/issues/415)
|
- Ability to send Binary data using Postwoman [\#415](https://github.com/liyasthomas/postwoman/issues/415)
|
||||||
- Custom request method [\#398](https://github.com/liyasthomas/postwoman/issues/398)
|
- Custom request method [\#398](https://github.com/liyasthomas/postwoman/issues/398)
|
||||||
- \[request\]: CLI possibilities [\#363](https://github.com/liyasthomas/postwoman/issues/363)
|
- \[request\]: CLI possibilities [\#363](https://github.com/liyasthomas/postwoman/issues/363)
|
||||||
@@ -29,6 +101,7 @@
|
|||||||
- Missing Focus on Inputs [\#279](https://github.com/liyasthomas/postwoman/issues/279)
|
- Missing Focus on Inputs [\#279](https://github.com/liyasthomas/postwoman/issues/279)
|
||||||
- Download the request result into a file. [\#278](https://github.com/liyasthomas/postwoman/issues/278)
|
- Download the request result into a file. [\#278](https://github.com/liyasthomas/postwoman/issues/278)
|
||||||
- Improve UI Contrast [\#277](https://github.com/liyasthomas/postwoman/issues/277)
|
- Improve UI Contrast [\#277](https://github.com/liyasthomas/postwoman/issues/277)
|
||||||
|
- \[UI\] \[UX\] Allow app to take width of browser [\#236](https://github.com/liyasthomas/postwoman/issues/236)
|
||||||
- Extend syntax highlighting with ACE for pre-request script textarea [\#235](https://github.com/liyasthomas/postwoman/issues/235)
|
- Extend syntax highlighting with ACE for pre-request script textarea [\#235](https://github.com/liyasthomas/postwoman/issues/235)
|
||||||
- Store pre-request scripts in history [\#233](https://github.com/liyasthomas/postwoman/issues/233)
|
- Store pre-request scripts in history [\#233](https://github.com/liyasthomas/postwoman/issues/233)
|
||||||
- Store the time spent on fetching a response [\#225](https://github.com/liyasthomas/postwoman/issues/225)
|
- Store the time spent on fetching a response [\#225](https://github.com/liyasthomas/postwoman/issues/225)
|
||||||
@@ -86,7 +159,6 @@
|
|||||||
- Intent to translate [\#367](https://github.com/liyasthomas/postwoman/issues/367)
|
- Intent to translate [\#367](https://github.com/liyasthomas/postwoman/issues/367)
|
||||||
- Static builds on releases [\#352](https://github.com/liyasthomas/postwoman/issues/352)
|
- Static builds on releases [\#352](https://github.com/liyasthomas/postwoman/issues/352)
|
||||||
- fix:SSE onclose handle [\#349](https://github.com/liyasthomas/postwoman/issues/349)
|
- fix:SSE onclose handle [\#349](https://github.com/liyasthomas/postwoman/issues/349)
|
||||||
- ⏬ Import a Postman's Collection [\#333](https://github.com/liyasthomas/postwoman/issues/333)
|
|
||||||
- \[Request\] Use responses for next request? [\#324](https://github.com/liyasthomas/postwoman/issues/324)
|
- \[Request\] Use responses for next request? [\#324](https://github.com/liyasthomas/postwoman/issues/324)
|
||||||
- Make response body area expandable [\#294](https://github.com/liyasthomas/postwoman/issues/294)
|
- Make response body area expandable [\#294](https://github.com/liyasthomas/postwoman/issues/294)
|
||||||
- Mobile can't see console for request errors [\#283](https://github.com/liyasthomas/postwoman/issues/283)
|
- Mobile can't see console for request errors [\#283](https://github.com/liyasthomas/postwoman/issues/283)
|
||||||
@@ -102,7 +174,6 @@
|
|||||||
- ⬆️ Bump @nuxtjs/axios from 5.9.0 to 5.9.2 [\#472](https://github.com/liyasthomas/postwoman/pull/472) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
- ⬆️ Bump @nuxtjs/axios from 5.9.0 to 5.9.2 [\#472](https://github.com/liyasthomas/postwoman/pull/472) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
- Added variables to graphql page. [\#464](https://github.com/liyasthomas/postwoman/pull/464) ([pushrbx](https://github.com/pushrbx))
|
- Added variables to graphql page. [\#464](https://github.com/liyasthomas/postwoman/pull/464) ([pushrbx](https://github.com/pushrbx))
|
||||||
- i18n [\#463](https://github.com/liyasthomas/postwoman/pull/463) ([liyasthomas](https://github.com/liyasthomas))
|
- i18n [\#463](https://github.com/liyasthomas/postwoman/pull/463) ([liyasthomas](https://github.com/liyasthomas))
|
||||||
- ⬆️ Bump cypress from 3.8.0 to 3.8.1 [\#460](https://github.com/liyasthomas/postwoman/pull/460) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
|
||||||
- i18n\(de-DE\): improve some translations [\#459](https://github.com/liyasthomas/postwoman/pull/459) ([gabschne](https://github.com/gabschne))
|
- i18n\(de-DE\): improve some translations [\#459](https://github.com/liyasthomas/postwoman/pull/459) ([gabschne](https://github.com/gabschne))
|
||||||
- bn-BD i18n [\#455](https://github.com/liyasthomas/postwoman/pull/455) ([hmtanbir](https://github.com/hmtanbir))
|
- bn-BD i18n [\#455](https://github.com/liyasthomas/postwoman/pull/455) ([hmtanbir](https://github.com/hmtanbir))
|
||||||
- API documentation page [\#451](https://github.com/liyasthomas/postwoman/pull/451) ([liyasthomas](https://github.com/liyasthomas))
|
- API documentation page [\#451](https://github.com/liyasthomas/postwoman/pull/451) ([liyasthomas](https://github.com/liyasthomas))
|
||||||
@@ -148,6 +219,157 @@
|
|||||||
- Adding french language basic [\#355](https://github.com/liyasthomas/postwoman/pull/355) ([thomasbnt](https://github.com/thomasbnt))
|
- Adding french language basic [\#355](https://github.com/liyasthomas/postwoman/pull/355) ([thomasbnt](https://github.com/thomasbnt))
|
||||||
- Add Proxy URL option [\#345](https://github.com/liyasthomas/postwoman/pull/345) ([NBTX](https://github.com/NBTX))
|
- Add Proxy URL option [\#345](https://github.com/liyasthomas/postwoman/pull/345) ([NBTX](https://github.com/NBTX))
|
||||||
|
|
||||||
|
## [v1.0.0](https://github.com/liyasthomas/postwoman/tree/v1.0.0) (2019-11-04)
|
||||||
|
|
||||||
|
[Full Changelog](https://github.com/liyasthomas/postwoman/compare/v0.1.0...v1.0.0)
|
||||||
|
|
||||||
|
**Implemented enhancements:**
|
||||||
|
|
||||||
|
- Chain requests. Execute a bunch of requests one by one and produce results [\#196](https://github.com/liyasthomas/postwoman/issues/196)
|
||||||
|
- Allow User to Choose Whether to Include Authentication in Permalink [\#178](https://github.com/liyasthomas/postwoman/issues/178)
|
||||||
|
- Allow HTTP \(not HTTPS\) on postwoman.io [\#175](https://github.com/liyasthomas/postwoman/issues/175)
|
||||||
|
- Docker-compose in development [\#168](https://github.com/liyasthomas/postwoman/issues/168)
|
||||||
|
- Add Docker [\#164](https://github.com/liyasthomas/postwoman/issues/164)
|
||||||
|
- Clear Input [\#155](https://github.com/liyasthomas/postwoman/issues/155)
|
||||||
|
- introduce some script language to parse the response and pass environment variable as request parameter [\#139](https://github.com/liyasthomas/postwoman/issues/139)
|
||||||
|
- Add links to the footer version and commit sha [\#134](https://github.com/liyasthomas/postwoman/issues/134)
|
||||||
|
- Please add a label for each request. It will be helpful. [\#133](https://github.com/liyasthomas/postwoman/issues/133)
|
||||||
|
- Use 'icon buttons' instead of 'text buttons' [\#130](https://github.com/liyasthomas/postwoman/issues/130)
|
||||||
|
- Change .editorconfig [\#115](https://github.com/liyasthomas/postwoman/issues/115)
|
||||||
|
- \[UX\] Provide Focus State for Buttons, etc. [\#112](https://github.com/liyasthomas/postwoman/issues/112)
|
||||||
|
- Add linter semistandard [\#98](https://github.com/liyasthomas/postwoman/issues/98)
|
||||||
|
- Show "Send" button all over the page or enable hotkeys [\#94](https://github.com/liyasthomas/postwoman/issues/94)
|
||||||
|
- Import request from cURL [\#93](https://github.com/liyasthomas/postwoman/issues/93)
|
||||||
|
- Search on History [\#92](https://github.com/liyasthomas/postwoman/issues/92)
|
||||||
|
- Add support for "application/hal+json" Content-Type [\#88](https://github.com/liyasthomas/postwoman/issues/88)
|
||||||
|
- The query string is built incorrectly when the path contains a parameter [\#87](https://github.com/liyasthomas/postwoman/issues/87)
|
||||||
|
- Option to Copy request as Fetch or XHR Or CURL [\#76](https://github.com/liyasthomas/postwoman/issues/76)
|
||||||
|
- Add Tests [\#65](https://github.com/liyasthomas/postwoman/issues/65)
|
||||||
|
- Request Headers [\#57](https://github.com/liyasthomas/postwoman/issues/57)
|
||||||
|
- Colored response codes based on status code [\#46](https://github.com/liyasthomas/postwoman/issues/46)
|
||||||
|
- Improve SEO [\#45](https://github.com/liyasthomas/postwoman/issues/45)
|
||||||
|
- Add html preview to response section [\#41](https://github.com/liyasthomas/postwoman/issues/41)
|
||||||
|
- websocket support [\#40](https://github.com/liyasthomas/postwoman/issues/40)
|
||||||
|
- Raw request body for POST requests and Authorization key/value in Header [\#36](https://github.com/liyasthomas/postwoman/issues/36)
|
||||||
|
- Code highlight on response body [\#33](https://github.com/liyasthomas/postwoman/issues/33)
|
||||||
|
- Template selector [\#32](https://github.com/liyasthomas/postwoman/issues/32)
|
||||||
|
- Vue template [\#31](https://github.com/liyasthomas/postwoman/issues/31)
|
||||||
|
- Add copy response to clipboard button [\#30](https://github.com/liyasthomas/postwoman/issues/30)
|
||||||
|
- Ability to store/share/create collections [\#29](https://github.com/liyasthomas/postwoman/issues/29)
|
||||||
|
- Send request on Enter Key press [\#17](https://github.com/liyasthomas/postwoman/issues/17)
|
||||||
|
- Readable [\#5](https://github.com/liyasthomas/postwoman/issues/5)
|
||||||
|
- Serialize a request into JSON? [\#4](https://github.com/liyasthomas/postwoman/issues/4)
|
||||||
|
- Add brand new logo to the project [\#244](https://github.com/liyasthomas/postwoman/pull/244) ([caneco](https://github.com/caneco))
|
||||||
|
- Feature/pre request script [\#231](https://github.com/liyasthomas/postwoman/pull/231) ([nickpalenchar](https://github.com/nickpalenchar))
|
||||||
|
- Add the ApolloTV proxy server [\#217](https://github.com/liyasthomas/postwoman/pull/217) ([NBTX](https://github.com/NBTX))
|
||||||
|
- bug: keeping information on page change [\#211](https://github.com/liyasthomas/postwoman/pull/211) ([breno-pereira](https://github.com/breno-pereira))
|
||||||
|
- Work in Progress: feature/allow-collections-importing [\#209](https://github.com/liyasthomas/postwoman/pull/209) ([vlad0337187](https://github.com/vlad0337187))
|
||||||
|
- Feature/log errors [\#207](https://github.com/liyasthomas/postwoman/pull/207) ([nickpalenchar](https://github.com/nickpalenchar))
|
||||||
|
- Use returned value from toggle component on change event [\#205](https://github.com/liyasthomas/postwoman/pull/205) ([hosseinnedaee](https://github.com/hosseinnedaee))
|
||||||
|
- Fix CORS and mixed content issue [\#199](https://github.com/liyasthomas/postwoman/pull/199) ([hosseinnedaee](https://github.com/hosseinnedaee))
|
||||||
|
- Added Tooltips [\#197](https://github.com/liyasthomas/postwoman/pull/197) ([AndrewBastin](https://github.com/AndrewBastin))
|
||||||
|
- Added auto theme [\#185](https://github.com/liyasthomas/postwoman/pull/185) ([AndrewBastin](https://github.com/AndrewBastin))
|
||||||
|
- Add Request name label for every requests [\#184](https://github.com/liyasthomas/postwoman/pull/184) ([sharath2106](https://github.com/sharath2106))
|
||||||
|
- Collections [\#176](https://github.com/liyasthomas/postwoman/pull/176) ([TheHollidayInn](https://github.com/TheHollidayInn))
|
||||||
|
|
||||||
|
**Fixed bugs:**
|
||||||
|
|
||||||
|
- Bearer Token value still left even after being cleared [\#212](https://github.com/liyasthomas/postwoman/issues/212)
|
||||||
|
- All changes in input fields lost when you switch to another page [\#203](https://github.com/liyasthomas/postwoman/issues/203)
|
||||||
|
- POST request json bodies aren't sent [\#180](https://github.com/liyasthomas/postwoman/issues/180)
|
||||||
|
- Headers turn into 0 : \[Object object\] [\#166](https://github.com/liyasthomas/postwoman/issues/166)
|
||||||
|
- Send Again Button Constantly Flickering [\#157](https://github.com/liyasthomas/postwoman/issues/157)
|
||||||
|
- There are cross-domain problems [\#128](https://github.com/liyasthomas/postwoman/issues/128)
|
||||||
|
- Raw requests are not being sent [\#124](https://github.com/liyasthomas/postwoman/issues/124)
|
||||||
|
- Request Body Is Not Sent [\#113](https://github.com/liyasthomas/postwoman/issues/113)
|
||||||
|
- default menu option - 'Http' is not highlighted when launched from installed pwa app \(UI bug\) [\#100](https://github.com/liyasthomas/postwoman/issues/100)
|
||||||
|
- App is broken with old history in localStorage [\#74](https://github.com/liyasthomas/postwoman/issues/74)
|
||||||
|
- Last added history entry is removed automatically after refresh [\#66](https://github.com/liyasthomas/postwoman/issues/66)
|
||||||
|
- Cannot use localhost as base url [\#56](https://github.com/liyasthomas/postwoman/issues/56)
|
||||||
|
- \[CORS\] No 'Access-Control-Allow-Origin' header is present on the requested resource [\#2](https://github.com/liyasthomas/postwoman/issues/2)
|
||||||
|
|
||||||
|
**Closed issues:**
|
||||||
|
|
||||||
|
- Section labels don't display properly in Firefox [\#237](https://github.com/liyasthomas/postwoman/issues/237)
|
||||||
|
- Unsupported URLs \[BUG\]? [\#229](https://github.com/liyasthomas/postwoman/issues/229)
|
||||||
|
- Credentials are still being included in Permalink even when "Include in URL" is turned off [\#227](https://github.com/liyasthomas/postwoman/issues/227)
|
||||||
|
- Display sendRequest runtime errors in the console [\#206](https://github.com/liyasthomas/postwoman/issues/206)
|
||||||
|
- Missing "Landing/start page" [\#162](https://github.com/liyasthomas/postwoman/issues/162)
|
||||||
|
- Response with content-type "application/hal+json" shows as \[Object object\] [\#158](https://github.com/liyasthomas/postwoman/issues/158)
|
||||||
|
- A place to discuss [\#149](https://github.com/liyasthomas/postwoman/issues/149)
|
||||||
|
- Inconsistent version name [\#141](https://github.com/liyasthomas/postwoman/issues/141)
|
||||||
|
- Autoresize the textarea [\#102](https://github.com/liyasthomas/postwoman/issues/102)
|
||||||
|
- Content-Type revamping [\#99](https://github.com/liyasthomas/postwoman/issues/99)
|
||||||
|
- Add version number in footer [\#97](https://github.com/liyasthomas/postwoman/issues/97)
|
||||||
|
- The history doesn't show a date with the timestamp. [\#81](https://github.com/liyasthomas/postwoman/issues/81)
|
||||||
|
- Not working on Brave Browser anymore [\#71](https://github.com/liyasthomas/postwoman/issues/71)
|
||||||
|
- Why da fuq is your name plastered all over the README? [\#70](https://github.com/liyasthomas/postwoman/issues/70)
|
||||||
|
- Comparison with Postman is missing [\#69](https://github.com/liyasthomas/postwoman/issues/69)
|
||||||
|
- HTTP request with different library [\#61](https://github.com/liyasthomas/postwoman/issues/61)
|
||||||
|
- Editorconfig file [\#60](https://github.com/liyasthomas/postwoman/issues/60)
|
||||||
|
- 500 this.isValidURL is not a function [\#58](https://github.com/liyasthomas/postwoman/issues/58)
|
||||||
|
- Styling with Tailwindcss [\#38](https://github.com/liyasthomas/postwoman/issues/38)
|
||||||
|
- Not Working in IE 11 [\#37](https://github.com/liyasthomas/postwoman/issues/37)
|
||||||
|
- PWA not installable [\#19](https://github.com/liyasthomas/postwoman/issues/19)
|
||||||
|
- Simple Misspelling [\#8](https://github.com/liyasthomas/postwoman/issues/8)
|
||||||
|
|
||||||
|
**Merged pull requests:**
|
||||||
|
|
||||||
|
- docs: add liyasthomas as a contributor [\#264](https://github.com/liyasthomas/postwoman/pull/264) ([allcontributors[bot]](https://github.com/apps/allcontributors))
|
||||||
|
- docs: add jamesgeorge007 as a contributor [\#263](https://github.com/liyasthomas/postwoman/pull/263) ([allcontributors[bot]](https://github.com/apps/allcontributors))
|
||||||
|
- docs: add NBTX as a contributor [\#262](https://github.com/liyasthomas/postwoman/pull/262) ([allcontributors[bot]](https://github.com/apps/allcontributors))
|
||||||
|
- Fix .all-contributorsrc badge template. [\#260](https://github.com/liyasthomas/postwoman/pull/260) ([NBTX](https://github.com/NBTX))
|
||||||
|
- docs: add hosseinnedaee as a contributor [\#259](https://github.com/liyasthomas/postwoman/pull/259) ([allcontributors[bot]](https://github.com/apps/allcontributors))
|
||||||
|
- docs: add nityanandagohain as a contributor [\#257](https://github.com/liyasthomas/postwoman/pull/257) ([allcontributors[bot]](https://github.com/apps/allcontributors))
|
||||||
|
- docs: add JacobAnavisca as a contributor [\#256](https://github.com/liyasthomas/postwoman/pull/256) ([allcontributors[bot]](https://github.com/apps/allcontributors))
|
||||||
|
- docs: add izerozlu as a contributor [\#255](https://github.com/liyasthomas/postwoman/pull/255) ([allcontributors[bot]](https://github.com/apps/allcontributors))
|
||||||
|
- docs: add vlad0337187 as a contributor [\#254](https://github.com/liyasthomas/postwoman/pull/254) ([allcontributors[bot]](https://github.com/apps/allcontributors))
|
||||||
|
- docs: add AndrewBastin as a contributor [\#253](https://github.com/liyasthomas/postwoman/pull/253) ([allcontributors[bot]](https://github.com/apps/allcontributors))
|
||||||
|
- docs: add terranblake as a contributor [\#252](https://github.com/liyasthomas/postwoman/pull/252) ([allcontributors[bot]](https://github.com/apps/allcontributors))
|
||||||
|
- docs: add nickpalenchar as a contributor [\#251](https://github.com/liyasthomas/postwoman/pull/251) ([allcontributors[bot]](https://github.com/apps/allcontributors))
|
||||||
|
- docs: add yubathom as a contributor [\#250](https://github.com/liyasthomas/postwoman/pull/250) ([allcontributors[bot]](https://github.com/apps/allcontributors))
|
||||||
|
- docs: add larouxn as a contributor [\#249](https://github.com/liyasthomas/postwoman/pull/249) ([allcontributors[bot]](https://github.com/apps/allcontributors))
|
||||||
|
- docs: add NBTX as a contributor [\#248](https://github.com/liyasthomas/postwoman/pull/248) ([allcontributors[bot]](https://github.com/apps/allcontributors))
|
||||||
|
- docs: add liyasthomas as a contributor [\#247](https://github.com/liyasthomas/postwoman/pull/247) ([allcontributors[bot]](https://github.com/apps/allcontributors))
|
||||||
|
- Make page changes more fluid [\#246](https://github.com/liyasthomas/postwoman/pull/246) ([NBTX](https://github.com/NBTX))
|
||||||
|
- Minor tweaks [\#245](https://github.com/liyasthomas/postwoman/pull/245) ([liyasthomas](https://github.com/liyasthomas))
|
||||||
|
- ⬆️ Bump @nuxtjs/google-tag-manager from 2.3.0 to 2.3.1 [\#243](https://github.com/liyasthomas/postwoman/pull/243) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- ⬆️ Bump yargs-parser from 15.0.0 to 16.1.0 [\#242](https://github.com/liyasthomas/postwoman/pull/242) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- ⬆️ Bump @nuxtjs/toast from 3.2.1 to 3.3.0 [\#241](https://github.com/liyasthomas/postwoman/pull/241) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- ⬆️ Bump highlight.js from 9.15.10 to 9.16.2 [\#240](https://github.com/liyasthomas/postwoman/pull/240) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- ⬆️ Bump cypress from 3.5.0 to 3.6.0 [\#239](https://github.com/liyasthomas/postwoman/pull/239) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- Fix legend labels in Firefox, fix colored labels slider [\#238](https://github.com/liyasthomas/postwoman/pull/238) ([NBTX](https://github.com/NBTX))
|
||||||
|
- Documentation Cleanup [\#230](https://github.com/liyasthomas/postwoman/pull/230) ([amitdash291](https://github.com/amitdash291))
|
||||||
|
- Fix \#227 Exclude credentials from permalink [\#228](https://github.com/liyasthomas/postwoman/pull/228) ([reefqi037](https://github.com/reefqi037))
|
||||||
|
- ⬆️ Bump cypress from 3.4.1 to 3.5.0 [\#224](https://github.com/liyasthomas/postwoman/pull/224) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- ⬆️ Bump @nuxtjs/axios from 5.6.0 to 5.8.0 [\#223](https://github.com/liyasthomas/postwoman/pull/223) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- ⬆️ Bump node-sass from 4.12.0 to 4.13.0 [\#222](https://github.com/liyasthomas/postwoman/pull/222) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- ⬆️ Bump nuxt from 2.10.1 to 2.10.2 [\#221](https://github.com/liyasthomas/postwoman/pull/221) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- ⬆️ Bump @nuxtjs/google-analytics from 2.2.0 to 2.2.1 [\#220](https://github.com/liyasthomas/postwoman/pull/220) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- ⬆️ Bump vuex-persist from 2.1.0 to 2.1.1 [\#219](https://github.com/liyasthomas/postwoman/pull/219) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- Fixed frame colors toggle [\#216](https://github.com/liyasthomas/postwoman/pull/216) ([mateusppereira](https://github.com/mateusppereira))
|
||||||
|
- Re-order sections and add toggle for including authentication in URL [\#215](https://github.com/liyasthomas/postwoman/pull/215) ([NBTX](https://github.com/NBTX))
|
||||||
|
- chore: minor code refactor [\#214](https://github.com/liyasthomas/postwoman/pull/214) ([jamesgeorge007](https://github.com/jamesgeorge007))
|
||||||
|
- Fix \#212 Clear bearer token value [\#213](https://github.com/liyasthomas/postwoman/pull/213) ([reefqi037](https://github.com/reefqi037))
|
||||||
|
- fix: don't display 'Collection is empty' label if collection has any … [\#208](https://github.com/liyasthomas/postwoman/pull/208) ([vlad0337187](https://github.com/vlad0337187))
|
||||||
|
- Fix proxy URL [\#201](https://github.com/liyasthomas/postwoman/pull/201) ([NBTX](https://github.com/NBTX))
|
||||||
|
- Fix CORS and Mixed-Content issue & Bug Fixes [\#200](https://github.com/liyasthomas/postwoman/pull/200) ([NBTX](https://github.com/NBTX))
|
||||||
|
- ⬆️ Bump start-server-and-test from 1.10.5 to 1.10.6 [\#198](https://github.com/liyasthomas/postwoman/pull/198) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- ⬆️ Bump start-server-and-test from 1.10.3 to 1.10.5 [\#194](https://github.com/liyasthomas/postwoman/pull/194) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- ⬆️ Bump @nuxtjs/google-tag-manager from 2.2.1 to 2.3.0 [\#193](https://github.com/liyasthomas/postwoman/pull/193) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- ⬆️ Bump nuxt from 2.10.0 to 2.10.1 [\#192](https://github.com/liyasthomas/postwoman/pull/192) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- ⬆️ Bump yargs-parser from 14.0.0 to 15.0.0 [\#191](https://github.com/liyasthomas/postwoman/pull/191) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- Add quotation marks for generated code [\#187](https://github.com/liyasthomas/postwoman/pull/187) ([johnhenry](https://github.com/johnhenry))
|
||||||
|
- Add basic e2e tests [\#181](https://github.com/liyasthomas/postwoman/pull/181) ([yubathom](https://github.com/yubathom))
|
||||||
|
- ⬆️ Bump nuxt from 2.9.2 to 2.10.0 [\#179](https://github.com/liyasthomas/postwoman/pull/179) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- 🐛 Fixed sitemap configuration [\#177](https://github.com/liyasthomas/postwoman/pull/177) ([NicoPennec](https://github.com/NicoPennec))
|
||||||
|
- Code Refactoring [\#173](https://github.com/liyasthomas/postwoman/pull/173) ([edisonaugusthy](https://github.com/edisonaugusthy))
|
||||||
|
- Added Black Theme [\#172](https://github.com/liyasthomas/postwoman/pull/172) ([AndrewBastin](https://github.com/AndrewBastin))
|
||||||
|
|
||||||
|
## [v0.1.0](https://github.com/liyasthomas/postwoman/tree/v0.1.0) (2019-08-22)
|
||||||
|
|
||||||
|
[Full Changelog](https://github.com/liyasthomas/postwoman/compare/91c08a5e6305cc95a0df46a33fdd0013bf7339b4...v0.1.0)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
\* *This Changelog was automatically generated by [github_changelog_generator](https://github.com/github-changelog-generator/github-changelog-generator)*
|
\* *This Changelog was automatically generated by [github_changelog_generator](https://github.com/github-changelog-generator/github-changelog-generator)*
|
||||||
|
|||||||
@@ -32,7 +32,6 @@
|
|||||||
<div align="center">
|
<div align="center">
|
||||||
<br>
|
<br>
|
||||||
<img src="static/images/screenshot1.png" alt="Screenshot1" width="100%">
|
<img src="static/images/screenshot1.png" alt="Screenshot1" width="100%">
|
||||||
<img src="static/images/screenshot2.png" alt="Screenshot2" width="100%">
|
|
||||||
<br>
|
<br>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -221,6 +220,13 @@ _Add-ons are developed and maintained under **[Official Postwoman Organization](
|
|||||||
- History
|
- History
|
||||||
- Collections
|
- Collections
|
||||||
|
|
||||||
|
✅ **Post-Request Tests β**: Write tests associated with a request that are executed after the request response.
|
||||||
|
|
||||||
|
**Use-cases:**
|
||||||
|
- Check the status code as an integer
|
||||||
|
- Filter response headers
|
||||||
|
- Parse the response data
|
||||||
|
|
||||||
**To find out more, please check out [Postwoman Wiki](https://github.com/liyasthomas/postwoman/wiki).**
|
**To find out more, please check out [Postwoman Wiki](https://github.com/liyasthomas/postwoman/wiki).**
|
||||||
|
|
||||||
## Demo 🚀 [](https://postwoman.io)
|
## Demo 🚀 [](https://postwoman.io)
|
||||||
|
|||||||
@@ -259,6 +259,10 @@ h4 {
|
|||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
hr {
|
||||||
|
border-bottom: 1px dashed var(--brd-color);
|
||||||
|
}
|
||||||
|
|
||||||
.tooltip {
|
.tooltip {
|
||||||
$bgcolor: var(--tt-color);
|
$bgcolor: var(--tt-color);
|
||||||
$fgcolor: var(--fg-color);
|
$fgcolor: var(--fg-color);
|
||||||
@@ -387,6 +391,10 @@ h3.title {
|
|||||||
color: var(--fg-light-color);
|
color: var(--fg-light-color);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.bg-color {
|
||||||
|
background-color: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
button {
|
button {
|
||||||
display: inline-flex;
|
display: inline-flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
|||||||
@@ -38,10 +38,6 @@
|
|||||||
.virtual-list {
|
.virtual-list {
|
||||||
max-height: calc(100vh - 288px);
|
max-height: calc(100vh - 288px);
|
||||||
}
|
}
|
||||||
|
|
||||||
.bg-color {
|
|
||||||
background-color: transparent;
|
|
||||||
}
|
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
|||||||
@@ -314,10 +314,6 @@ ol li {
|
|||||||
padding: 0 0 8px;
|
padding: 0 0 8px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.bg-color {
|
|
||||||
background-color: transparent;
|
|
||||||
}
|
|
||||||
|
|
||||||
@media (max-width: 720px) {
|
@media (max-width: 720px) {
|
||||||
.virtual-list.filled {
|
.virtual-list.filled {
|
||||||
min-height: 320px;
|
min-height: 320px;
|
||||||
|
|||||||
175
functions/postwomanTesting.js
Normal file
175
functions/postwomanTesting.js
Normal file
@@ -0,0 +1,175 @@
|
|||||||
|
const PASS = "PASS";
|
||||||
|
const FAIL = "FAIL";
|
||||||
|
const ERROR = "ERROR";
|
||||||
|
|
||||||
|
const styles = {
|
||||||
|
[PASS]: { icon: "check", class: "success-response" },
|
||||||
|
[FAIL]: { icon: "close", class: "cl-error-response" },
|
||||||
|
[ERROR]: { icon: "close", class: "cl-error-response" },
|
||||||
|
none: { icon: "", class: "" }
|
||||||
|
};
|
||||||
|
|
||||||
|
// TODO: probably have to use a more global state for `test`
|
||||||
|
|
||||||
|
export default function runTestScriptWithVariables(script, variables) {
|
||||||
|
let pw = {
|
||||||
|
_errors: [],
|
||||||
|
_testReports: [],
|
||||||
|
_report: "",
|
||||||
|
expect(value) {
|
||||||
|
try {
|
||||||
|
return expect(value, this._testReports);
|
||||||
|
} catch (e) {
|
||||||
|
pw._testReports.push({ result: ERROR, message: e });
|
||||||
|
}
|
||||||
|
},
|
||||||
|
test: (descriptor, func) => test(descriptor, func, pw._testReports)
|
||||||
|
// globals that the script is allowed to have access to.
|
||||||
|
};
|
||||||
|
Object.assign(pw, variables);
|
||||||
|
|
||||||
|
// run pre-request script within this function so that it has access to the pw object.
|
||||||
|
new Function("pw", script)(pw);
|
||||||
|
//
|
||||||
|
const testReports = pw._testReports.map(item => {
|
||||||
|
if (item.result) {
|
||||||
|
item.styles = styles[item.result];
|
||||||
|
} else {
|
||||||
|
item.styles = styles.none;
|
||||||
|
}
|
||||||
|
return item;
|
||||||
|
});
|
||||||
|
return { report: pw._report, errors: pw._errors, testResults: testReports };
|
||||||
|
}
|
||||||
|
|
||||||
|
function test(descriptor, func, _testReports) {
|
||||||
|
_testReports.push({ startBlock: descriptor });
|
||||||
|
try {
|
||||||
|
func();
|
||||||
|
} catch (e) {
|
||||||
|
_testReports.push({ result: ERROR, message: e });
|
||||||
|
}
|
||||||
|
_testReports.push({ endBlock: true });
|
||||||
|
|
||||||
|
// TODO: Organize and generate text report of each {descriptor: true} section in testReports.
|
||||||
|
// add checkmark or x depending on if each testReport is pass=true or pass=false
|
||||||
|
}
|
||||||
|
|
||||||
|
function expect(expectValue, _testReports) {
|
||||||
|
return new Expectation(expectValue, null, _testReports);
|
||||||
|
}
|
||||||
|
|
||||||
|
class Expectation {
|
||||||
|
constructor(expectValue, _not, _testReports) {
|
||||||
|
this.expectValue = expectValue;
|
||||||
|
this.not = _not || new Expectation(this.expectValue, true, _testReports);
|
||||||
|
this._testReports = _testReports; // this values is used within Test.it, which wraps Expectation and passes _testReports value.
|
||||||
|
this._satisfies = function(expectValue, targetValue) {
|
||||||
|
// Used for testing if two values match the expectation, which could be === OR !==, depending on if not
|
||||||
|
// was used. Expectation#_satisfies prevents the need to have an if(this.not) branch in every test method.
|
||||||
|
// Signature is _satisfies([expectValue,] targetValue): if only one argument is given, it is assumed the targetValue, and expectValue is set to this.expectValue
|
||||||
|
if (!targetValue) {
|
||||||
|
targetValue = expectValue;
|
||||||
|
expectValue = this.expectValue;
|
||||||
|
}
|
||||||
|
if (this.not === true) {
|
||||||
|
// test the inverse. this.not is always truthly, but an Expectation that is inverted will always be strictly `true`
|
||||||
|
return expectValue !== targetValue;
|
||||||
|
} else {
|
||||||
|
return expectValue === targetValue;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
_fmtNot(message) {
|
||||||
|
// given a string with "(not)" in it, replaces with "not" or "", depending if the expectation is expecting the positive or inverse (this._not)
|
||||||
|
if (this.not === true) {
|
||||||
|
return message.replace("(not)", "not ");
|
||||||
|
} else {
|
||||||
|
return message.replace("(not)", "");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
_fail(message) {
|
||||||
|
this._testReports.push({ result: FAIL, message });
|
||||||
|
}
|
||||||
|
_pass(message) {
|
||||||
|
this._testReports.push({ result: PASS });
|
||||||
|
}
|
||||||
|
// TEST METHODS DEFINED BELOW
|
||||||
|
// these are the usual methods that would follow expect(...)
|
||||||
|
toBe(value) {
|
||||||
|
return this._satisfies(value)
|
||||||
|
? this._pass()
|
||||||
|
: this._fail(
|
||||||
|
this._fmtNot(`Expected ${this.expectValue} (not)to be ${value}`)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
toHaveProperty(value) {
|
||||||
|
return this._satisfies(this.expectValue.hasOwnProperty(value), true)
|
||||||
|
? this._pass()
|
||||||
|
: this._fail(
|
||||||
|
this._fmtNot(
|
||||||
|
`Expected object ${this.expectValue} to (not)have property ${value}`
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
toBeLevel2xx() {
|
||||||
|
const code = parseInt(this.expectValue);
|
||||||
|
if (Number.isNaN(code)) {
|
||||||
|
return this._fail(
|
||||||
|
`Expected 200-level status but could not parse value ${this.expectValue}`
|
||||||
|
);
|
||||||
|
}
|
||||||
|
return this._satisfies(code >= 200 && code < 300)
|
||||||
|
? this._pass()
|
||||||
|
: this._fail(
|
||||||
|
this._fmtNot(
|
||||||
|
`Expected ${this.expectValue} to (not)be 200-level status`
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
toBeLevel3xx() {
|
||||||
|
const code = parseInt(this.expectValue);
|
||||||
|
if (Number.isNaN(code)) {
|
||||||
|
return this._fail(
|
||||||
|
`Expected 300-level status but could not parse value ${this.expectValue}`
|
||||||
|
);
|
||||||
|
}
|
||||||
|
return this._satisfies(code >= 300 && code < 400)
|
||||||
|
? this._pass()
|
||||||
|
: this._fail(
|
||||||
|
this._fmtNot(
|
||||||
|
`Expected ${this.expectValue} to (not)be 300-level status`
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
toBeLevel4xx() {
|
||||||
|
const code = parseInt(this.expectValue);
|
||||||
|
if (Number.isNaN(code)) {
|
||||||
|
return this._fail(
|
||||||
|
`Expected 400-level status but could not parse value ${this.expectValue}`
|
||||||
|
);
|
||||||
|
}
|
||||||
|
return this._satisfies(code >= 400 && code < 500)
|
||||||
|
? this._pass()
|
||||||
|
: this._fail(
|
||||||
|
this._fmtNot(
|
||||||
|
`Expected ${this.expectValue} to (not)be 400-level status`
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
toBeLevel5xx() {
|
||||||
|
const code = parseInt(this.expectValue);
|
||||||
|
if (Number.isNaN(code)) {
|
||||||
|
return this._fail(
|
||||||
|
`Expected 500-level status but could not parse value ${this.expectValue}`
|
||||||
|
);
|
||||||
|
}
|
||||||
|
return this._satisfies(code >= 500 && code < 600)
|
||||||
|
? this._pass()
|
||||||
|
: this._fail(
|
||||||
|
this._fmtNot(
|
||||||
|
`Expected ${this.expectValue} to (not)be 500-level status`
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -305,11 +305,13 @@
|
|||||||
(fb.currentUser.email ||
|
(fb.currentUser.email ||
|
||||||
'<label><i>Email not found</i></label>')
|
'<label><i>Email not found</i></label>')
|
||||||
"
|
"
|
||||||
|
aria-label="Account"
|
||||||
>
|
>
|
||||||
<img
|
<img
|
||||||
v-if="fb.currentUser.photoURL"
|
v-if="fb.currentUser.photoURL"
|
||||||
:src="fb.currentUser.photoURL"
|
:src="fb.currentUser.photoURL"
|
||||||
class="material-icons"
|
class="material-icons"
|
||||||
|
alt="Profile image"
|
||||||
/>
|
/>
|
||||||
<i v-else class="material-icons">account_circle</i>
|
<i v-else class="material-icons">account_circle</i>
|
||||||
</button>
|
</button>
|
||||||
|
|||||||
107
pages/index.vue
107
pages/index.vue
@@ -28,8 +28,8 @@
|
|||||||
v-model="preRequestScript"
|
v-model="preRequestScript"
|
||||||
:lang="'javascript'"
|
:lang="'javascript'"
|
||||||
:options="{
|
:options="{
|
||||||
maxLines: responseBodyMaxLines,
|
maxLines: '16',
|
||||||
minLines: '16',
|
minLines: '8',
|
||||||
fontSize: '16px',
|
fontSize: '16px',
|
||||||
autoScrollEditorIntoView: true,
|
autoScrollEditorIntoView: true,
|
||||||
showPrintMargin: false,
|
showPrintMargin: false,
|
||||||
@@ -282,6 +282,23 @@
|
|||||||
>close</i
|
>close</i
|
||||||
>
|
>
|
||||||
</button>
|
</button>
|
||||||
|
<button
|
||||||
|
:class="'icon' + (testsEnabled ? ' info-response' : '')"
|
||||||
|
id="preRequestScriptButto"
|
||||||
|
v-tooltip.bottom="{
|
||||||
|
content: !testsEnabled ? 'Enable Tests' : 'Disable Tests'
|
||||||
|
}"
|
||||||
|
@click="testsEnabled = !testsEnabled"
|
||||||
|
>
|
||||||
|
<i
|
||||||
|
class="material-icons"
|
||||||
|
:class="testsEnabled"
|
||||||
|
v-if="!testsEnabled"
|
||||||
|
>
|
||||||
|
assignment_turned_in
|
||||||
|
</i>
|
||||||
|
<i class="material-icons" :class="testsEnabled" v-else>close</i>
|
||||||
|
</button>
|
||||||
</span>
|
</span>
|
||||||
<span>
|
<span>
|
||||||
<button
|
<button
|
||||||
@@ -316,6 +333,74 @@
|
|||||||
</div>
|
</div>
|
||||||
</pw-section>
|
</pw-section>
|
||||||
|
|
||||||
|
<pw-section
|
||||||
|
v-if="testsEnabled"
|
||||||
|
class="orange"
|
||||||
|
label="Tests"
|
||||||
|
ref="postRequestTests"
|
||||||
|
>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<div class="flex-wrap">
|
||||||
|
<label for="generatedCode">{{ $t("javascript_code") }}</label>
|
||||||
|
<div>
|
||||||
|
<a
|
||||||
|
href="https://github.com/liyasthomas/postwoman/wiki/Post-Requests-Tests"
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener"
|
||||||
|
>
|
||||||
|
<button class="icon" v-tooltip="$t('wiki')">
|
||||||
|
<i class="material-icons">help</i>
|
||||||
|
</button>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<Editor
|
||||||
|
v-model="testScript"
|
||||||
|
:lang="'javascript'"
|
||||||
|
:options="{
|
||||||
|
maxLines: '16',
|
||||||
|
minLines: '8',
|
||||||
|
fontSize: '16px',
|
||||||
|
autoScrollEditorIntoView: true,
|
||||||
|
showPrintMargin: false,
|
||||||
|
useWorker: false
|
||||||
|
}"
|
||||||
|
/>
|
||||||
|
<div v-if="testReports">
|
||||||
|
<div class="flex-wrap">
|
||||||
|
<label>Test Reports</label>
|
||||||
|
<div>
|
||||||
|
<button
|
||||||
|
class="icon"
|
||||||
|
@click="clearContent('tests', $event)"
|
||||||
|
v-tooltip.bottom="$t('clear')"
|
||||||
|
>
|
||||||
|
<i class="material-icons">clear_all</i>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div v-for="testReport in testReports">
|
||||||
|
<div v-if="testReport.startBlock" class="info">
|
||||||
|
<h4>{{ testReport.startBlock }}</h4>
|
||||||
|
</div>
|
||||||
|
<p v-else-if="testReport.result" class="flex-wrap info">
|
||||||
|
<span :class="testReport.styles.class">
|
||||||
|
<i class="material-icons">
|
||||||
|
{{ testReport.styles.icon }}
|
||||||
|
</i>
|
||||||
|
<span> {{ testReport.result }}</span>
|
||||||
|
<span v-if="testReport.message">
|
||||||
|
<label> • {{ testReport.message }}</label>
|
||||||
|
</span>
|
||||||
|
</span>
|
||||||
|
</p>
|
||||||
|
<div v-else-if="testReport.endBlock"><hr /></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</pw-section>
|
||||||
<section id="options">
|
<section id="options">
|
||||||
<input id="tab-one" type="radio" name="options" checked="checked" />
|
<input id="tab-one" type="radio" name="options" checked="checked" />
|
||||||
<label for="tab-one">{{ $t("authentication") }}</label>
|
<label for="tab-one">{{ $t("authentication") }}</label>
|
||||||
@@ -1152,6 +1237,7 @@ import querystring from "querystring";
|
|||||||
import textareaAutoHeight from "../directives/textareaAutoHeight";
|
import textareaAutoHeight from "../directives/textareaAutoHeight";
|
||||||
import parseCurlCommand from "../assets/js/curlparser.js";
|
import parseCurlCommand from "../assets/js/curlparser.js";
|
||||||
import getEnvironmentVariablesFromScript from "../functions/preRequest";
|
import getEnvironmentVariablesFromScript from "../functions/preRequest";
|
||||||
|
import runTestScriptWithVariables from "../functions/postwomanTesting";
|
||||||
import parseTemplateString from "../functions/templating";
|
import parseTemplateString from "../functions/templating";
|
||||||
import AceEditor from "../components/ace-editor";
|
import AceEditor from "../components/ace-editor";
|
||||||
import { tokenRequest, oauthRedirect } from "../assets/js/oauth";
|
import { tokenRequest, oauthRedirect } from "../assets/js/oauth";
|
||||||
@@ -1229,7 +1315,10 @@ export default {
|
|||||||
return {
|
return {
|
||||||
showModal: false,
|
showModal: false,
|
||||||
showPreRequestScript: false,
|
showPreRequestScript: false,
|
||||||
|
testsEnabled: false,
|
||||||
|
testScript: "// pw.expect('variable').toBe('value');",
|
||||||
preRequestScript: "// pw.env.set('variable', 'value');",
|
preRequestScript: "// pw.env.set('variable', 'value');",
|
||||||
|
testReports: null,
|
||||||
copyButton: '<i class="material-icons">file_copy</i>',
|
copyButton: '<i class="material-icons">file_copy</i>',
|
||||||
downloadButton: '<i class="material-icons">get_app</i>',
|
downloadButton: '<i class="material-icons">get_app</i>',
|
||||||
doneButton: '<i class="material-icons">done</i>',
|
doneButton: '<i class="material-icons">done</i>',
|
||||||
@@ -2135,6 +2224,17 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
})();
|
})();
|
||||||
|
|
||||||
|
// tests
|
||||||
|
const syntheticResponse = {
|
||||||
|
status: this.response.status,
|
||||||
|
body: this.response.body,
|
||||||
|
headers: this.response.headers
|
||||||
|
};
|
||||||
|
const { testResults } = runTestScriptWithVariables(this.testScript, {
|
||||||
|
response: syntheticResponse
|
||||||
|
});
|
||||||
|
this.testReports = testResults;
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error(error);
|
console.error(error);
|
||||||
if (error.response) {
|
if (error.response) {
|
||||||
@@ -2516,6 +2616,9 @@ export default {
|
|||||||
break;
|
break;
|
||||||
case "tokenReqs":
|
case "tokenReqs":
|
||||||
this.tokenReqs = [];
|
this.tokenReqs = [];
|
||||||
|
case "tests":
|
||||||
|
this.testReports = null;
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
(this.label = ""),
|
(this.label = ""),
|
||||||
(this.method = "GET"),
|
(this.method = "GET"),
|
||||||
|
|||||||
@@ -172,7 +172,7 @@
|
|||||||
<label for="url">{{ $t("url") }}</label>
|
<label for="url">{{ $t("url") }}</label>
|
||||||
<button
|
<button
|
||||||
class="icon"
|
class="icon"
|
||||||
@click="settings.PROXY_URL = `https://postwoman.apollotv.xyz/`"
|
@click="resetProxy"
|
||||||
v-tooltip.bottom="$t('reset_default')"
|
v-tooltip.bottom="$t('reset_default')"
|
||||||
>
|
>
|
||||||
<i class="material-icons">clear_all</i>
|
<i class="material-icons">clear_all</i>
|
||||||
@@ -326,6 +326,7 @@ export default {
|
|||||||
PROXY_KEY: this.$store.state.postwoman.settings.PROXY_KEY || ""
|
PROXY_KEY: this.$store.state.postwoman.settings.PROXY_KEY || ""
|
||||||
},
|
},
|
||||||
|
|
||||||
|
doneButton: '<i class="material-icons">done</i>',
|
||||||
fb
|
fb
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
@@ -456,6 +457,17 @@ export default {
|
|||||||
initSettings() {
|
initSettings() {
|
||||||
fb.writeSettings("syncHistory", true);
|
fb.writeSettings("syncHistory", true);
|
||||||
fb.writeSettings("syncCollections", false);
|
fb.writeSettings("syncCollections", false);
|
||||||
|
},
|
||||||
|
resetProxy(e) {
|
||||||
|
this.settings.PROXY_URL = `https://postwoman.apollotv.xyz/`;
|
||||||
|
e.target.innerHTML = this.doneButton;
|
||||||
|
this.$toast.info(this.$t("cleared"), {
|
||||||
|
icon: "clear_all"
|
||||||
|
});
|
||||||
|
setTimeout(
|
||||||
|
() => (e.target.innerHTML = '<i class="material-icons">clear_all</i>'),
|
||||||
|
1000
|
||||||
|
);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user