Skip to content

Commit

Permalink
Add an empty route for a form to remove other authors from a PREreview
Browse files Browse the repository at this point in the history
Refs #388
  • Loading branch information
thewilkybarkid committed Oct 14, 2022
1 parent fda3c86 commit 0bcf0a4
Show file tree
Hide file tree
Showing 5 changed files with 39 additions and 0 deletions.
6 changes: 6 additions & 0 deletions src/app.ts
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ import {
writeReviewMatch,
writeReviewPersonaMatch,
writeReviewPostMatch,
writeReviewRemoveAuthorMatch,
writeReviewReviewMatch,
} from './routes'
import {
Expand All @@ -55,6 +56,7 @@ import {
writeReviewConduct,
writeReviewPersona,
writeReviewPost,
writeReviewRemoveAuthor,
writeReviewReview,
} from './write-review'

Expand Down Expand Up @@ -131,6 +133,10 @@ export const router: P.Parser<RM.ReaderMiddleware<AppEnv, StatusOpen, ResponseEn
writeReviewAddAuthorMatch.parser,
P.map(({ doi }) => writeReviewAddAuthor(doi)),
),
pipe(
writeReviewRemoveAuthorMatch.parser,
P.map(() => writeReviewRemoveAuthor()),
),
pipe(
writeReviewAddAuthorsMatch.parser,
P.map(({ doi }) => writeReviewAddAuthors(doi)),
Expand Down
7 changes: 7 additions & 0 deletions src/routes.ts
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,13 @@ export const writeReviewAuthorsMatch = pipe(writeReviewBaseMatch, P.then(P.lit('

export const writeReviewAddAuthorMatch = pipe(writeReviewBaseMatch, P.then(P.lit('add-author')), P.then(P.end))

export const writeReviewRemoveAuthorMatch = pipe(
writeReviewBaseMatch,
P.then(P.lit('remove-author')),
P.then(type('index', IntegerFromStringC)),
P.then(P.end),
)

export const writeReviewAddAuthorsMatch = pipe(writeReviewBaseMatch, P.then(P.lit('add-more-authors')), P.then(P.end))

export const writeReviewCompetingInterestsMatch = pipe(
Expand Down
1 change: 1 addition & 0 deletions src/write-review/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,5 @@ export { writeReviewCompetingInterests } from './write-review-competing-interest
export { writeReviewConduct } from './write-review-conduct'
export { writeReviewPersona } from './write-review-persona'
export { NewPrereview, PostPrereviewEnv, writeReviewPost } from './write-review-post'
export { writeReviewRemoveAuthor } from './write-review-remove-author'
export { writeReviewReview } from './write-review-review'
3 changes: 3 additions & 0 deletions src/write-review/write-review-remove-author.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
import { notFound } from '../middleware'

export const writeReviewRemoveAuthor = () => notFound
22 changes: 22 additions & 0 deletions test/write-review/write-review-remove-author.test.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
import * as E from 'fp-ts/Either'
import { MediaType, Status } from 'hyper-ts'
import * as _ from '../../src/write-review'
import * as fc from '../fc'
import { runMiddleware } from '../middleware'

test('writeReviewRemoveAuthor', async () => {
await fc.assert(
fc.asyncProperty(fc.connection({}), async connection => {
const actual = await runMiddleware(_.writeReviewRemoveAuthor()({}), connection)()

expect(actual).toStrictEqual(
E.right([
{ type: 'setStatus', status: Status.NotFound },
{ type: 'setHeader', name: 'Cache-Control', value: 'no-store, must-revalidate' },
{ type: 'setHeader', name: 'Content-Type', value: MediaType.textHTML },
{ type: 'setBody', body: expect.anything() },
]),
)
}),
)
})

0 comments on commit 0bcf0a4

Please sign in to comment.