mirror of
https://github.com/TryGhost/Ghost.git
synced 2025-01-20 22:42:53 -05:00
Updated counts api url (#12)
closes TryGhost/Team#2094 - Counts request was changed from `post` to `get` for enable request caching.
This commit is contained in:
parent
883a9728ca
commit
290e3d5713
4 changed files with 65 additions and 18 deletions
|
@ -4,18 +4,20 @@
|
||||||
|
|
||||||
This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app).
|
This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app).
|
||||||
|
|
||||||
|
## Basic Setup
|
||||||
|
|
||||||
|
This section is mostly relevant for core team only for active Comments development.
|
||||||
|
|
||||||
|
- Run `yarn start:dev` to start Comments in development mode
|
||||||
|
- Open [http://localhost:3000](http://localhost:3000) to view it in the browser.
|
||||||
|
- To use the local Comments script in a local Ghost site
|
||||||
|
- Update `config.local.json` in Ghost repo to add "comments" config pointing to local dev server url as instructed on terminal.
|
||||||
|
- By default, this uses port `5368` for loading local Comments script on Ghost site. It's also possible to specify a custom port when running the script using - `--port=xxxx`.
|
||||||
|
|
||||||
## Available Scripts
|
## Available Scripts
|
||||||
|
|
||||||
In the project directory, you can run:
|
In the project directory, you can run:
|
||||||
|
|
||||||
### `yarn start`
|
|
||||||
|
|
||||||
Runs the app in the development mode.\
|
|
||||||
Open [http://localhost:3000](http://localhost:3000) to view it in your browser.
|
|
||||||
|
|
||||||
The page will reload when you make changes.\
|
|
||||||
You may also see any lint errors in the console.
|
|
||||||
|
|
||||||
### `yarn test`
|
### `yarn test`
|
||||||
|
|
||||||
Launches the test runner in the interactive watch mode.\
|
Launches the test runner in the interactive watch mode.\
|
||||||
|
|
|
@ -15,8 +15,8 @@ Cypress.Commands.add('login', (memberData) => {
|
||||||
Cypress.Commands.add('mockAddComments', () => {
|
Cypress.Commands.add('mockAddComments', () => {
|
||||||
cy.intercept(
|
cy.intercept(
|
||||||
{
|
{
|
||||||
method: 'POST',
|
method: 'GET',
|
||||||
url: '/members/api/comments/'
|
url: '/members/api/comments/counts/'
|
||||||
},
|
},
|
||||||
[] // and force the response to be: []
|
[] // and force the response to be: []
|
||||||
).as('getCounts'); // and assign an alias
|
).as('getCounts'); // and assign an alias
|
||||||
|
@ -47,7 +47,7 @@ Cypress.Commands.add('mockComments', (count, override = {}) => {
|
||||||
|
|
||||||
cy.intercept(
|
cy.intercept(
|
||||||
{
|
{
|
||||||
method: 'POST',
|
method: 'GET',
|
||||||
url: '/members/api/comments/counts/'
|
url: '/members/api/comments/counts/'
|
||||||
},
|
},
|
||||||
[]
|
[]
|
||||||
|
|
|
@ -101,17 +101,15 @@ function setupGhostApi({siteUrl = window.location.origin, apiUrl, apiKey}) {
|
||||||
|
|
||||||
api.comments = {
|
api.comments = {
|
||||||
async count({postId}) {
|
async count({postId}) {
|
||||||
const url = endpointFor({type: 'members', resource: 'comments/counts'});
|
const params = postId ? `?ids=${postId}` : '';
|
||||||
|
const url = endpointFor({type: 'members', resource: `comments/counts`, params});
|
||||||
const response = await makeRequest({
|
const response = await makeRequest({
|
||||||
url,
|
url,
|
||||||
method: 'POST',
|
method: 'GET',
|
||||||
headers: {
|
headers: {
|
||||||
'Content-Type': 'application/json'
|
'Content-Type': 'application/json'
|
||||||
},
|
},
|
||||||
credentials: 'same-origin',
|
credentials: 'same-origin'
|
||||||
body: JSON.stringify({
|
|
||||||
ids: [postId]
|
|
||||||
})
|
|
||||||
});
|
});
|
||||||
|
|
||||||
const json = await response.json();
|
const json = await response.json();
|
||||||
|
|
47
apps/comments-ui/src/utils/api.test.js
Normal file
47
apps/comments-ui/src/utils/api.test.js
Normal file
|
@ -0,0 +1,47 @@
|
||||||
|
import setupGhostApi from './api';
|
||||||
|
|
||||||
|
test('should call counts endpoint', () => {
|
||||||
|
jest.spyOn(window, 'fetch');
|
||||||
|
window.fetch.mockResolvedValueOnce({
|
||||||
|
ok: true,
|
||||||
|
json: async () => ({success: true})
|
||||||
|
});
|
||||||
|
|
||||||
|
const api = setupGhostApi({});
|
||||||
|
|
||||||
|
api.comments.count({postId: null});
|
||||||
|
|
||||||
|
expect(window.fetch).toHaveBeenCalledTimes(1);
|
||||||
|
expect(window.fetch).toHaveBeenCalledWith(
|
||||||
|
'http://localhost/members/api/comments/counts/',
|
||||||
|
expect.objectContaining({
|
||||||
|
method: 'GET',
|
||||||
|
headers: {'Content-Type': 'application/json'},
|
||||||
|
credentials: 'same-origin',
|
||||||
|
body: undefined
|
||||||
|
}),
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('should call counts endpoint with postId query param', () => {
|
||||||
|
jest.spyOn(window, 'fetch');
|
||||||
|
window.fetch.mockResolvedValueOnce({
|
||||||
|
ok: true,
|
||||||
|
json: async () => ({success: true})
|
||||||
|
});
|
||||||
|
|
||||||
|
const api = setupGhostApi({});
|
||||||
|
|
||||||
|
api.comments.count({postId: '123'});
|
||||||
|
|
||||||
|
expect(window.fetch).toHaveBeenCalledTimes(1);
|
||||||
|
expect(window.fetch).toHaveBeenCalledWith(
|
||||||
|
'http://localhost/members/api/comments/counts/?ids=123',
|
||||||
|
expect.objectContaining({
|
||||||
|
method: 'GET',
|
||||||
|
headers: {'Content-Type': 'application/json'},
|
||||||
|
credentials: 'same-origin',
|
||||||
|
body: undefined
|
||||||
|
}),
|
||||||
|
);
|
||||||
|
});
|
Loading…
Add table
Reference in a new issue