Skip to content

Commit

Permalink
Merge pull request #900 from ix5/demo-admin-clean-urls
Browse files Browse the repository at this point in the history
admin, demo: Use trailing slashes for user-facing pages
  • Loading branch information
ix5 committed Jun 5, 2022
2 parents b5b3e82 + a48f62a commit d098ab3
Show file tree
Hide file tree
Showing 6 changed files with 61 additions and 24 deletions.
36 changes: 36 additions & 0 deletions apidoc/_apidoc.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,42 @@
// ------------------------------------------------------------------------------------------
// History.
// ------------------------------------------------------------------------------------------

/**
* @api {get} /demo Isso demo page
* @apiGroup Demo
* @apiName demo
* @apiVersion 0.12.6
* @apiPrivate
* @apiDescription
* Displays a demonstration of Isso with a thread counter and comment widget.
*
* @apiExample {curl} Get demo page
* curl 'https://comments.example.com/demo/index.html'
*
* @apiSuccessExample {html} Demo page:
* <!DOCTYPE html>
* <head>
* <title>Isso Demo</title>
* <meta charset="utf-8">
* <meta name="viewport" content="width=device-width, initial-scale=1">
* </head>
* <body>
* <div id="page">
* <div id="wrapper" style="max-width: 900px; margin-left: auto; margin-right: auto;">
* <h2><a href="index.html">Isso Demo</a></h2>
* <script src="../js/embed.dev.js" data-isso="../" ></script>
* <section>
* <p>This is a link to a thead, which will display a comment counter:
* <a href="/demo/index.html#isso-thread">How many Comments?</a></p>
* <p>Below is the actual comment field.</p>
* </section>
* <section id="isso-thread" data-title="Isso Test"><noscript>Javascript needs to be activated to view comments.</noscript></section>
* </div>
* </div>
* </body>
*/

/**
* @api {get} /count (Deprecated) Count for single thread
* @apiGroup Thread
Expand Down
4 changes: 2 additions & 2 deletions isso/js/tests/integration/__snapshots__/puppet.test.js.snap
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP

exports[`should fill Postbox with valid data and receive 201 reply 1`] = `
"<noscript>Javascript needs to be activated to view comments.</noscript><span class=\\"isso-feedlink\\"><a href=\\"../feed?uri=%2Fdemo%2Findex.html\\">Atom feed</a></span><h4 class=\\"isso-thread-heading\\">No Comments Yet</h4><div class=\\"isso-postbox\\"><div class=\\"isso-form-wrapper\\"><div class=\\"isso-textarea-wrapper\\"><textarea class=\\"isso-textarea\\" rows=\\"5\\" minlength=\\"3\\" maxlength=\\"65535\\" placeholder=\\"Type Comment Here (at least 3 chars)\\"></textarea><div class=\\"isso-preview\\"><div class=\\"isso-comment\\"><div class=\\"isso-text-wrapper\\"><div class=\\"isso-text\\"></div></div></div></div></div><section class=\\"isso-auth-section\\"><p class=\\"isso-input-wrapper\\"><label for=\\"isso-postbox-author\\">Name (optional)</label><input id=\\"isso-postbox-author\\" type=\\"text\\" name=\\"author\\" placeholder=\\"John Doe\\" value=\\"\\"></p><p class=\\"isso-input-wrapper\\"><label for=\\"isso-postbox-email\\">E-mail (optional)</label><input id=\\"isso-postbox-email\\" type=\\"email\\" name=\\"email\\" placeholder=\\"johndoe@example.com\\" value=\\"\\"></p><p class=\\"isso-input-wrapper\\"><label for=\\"isso-postbox-website\\">Website (optional)</label><input id=\\"isso-postbox-website\\" type=\\"text\\" name=\\"website\\" placeholder=\\"https://example.com\\" value=\\"\\"></p><p class=\\"isso-post-action\\"><input type=\\"submit\\" value=\\"Submit\\"></p><p class=\\"isso-post-action\\"><input type=\\"button\\" name=\\"preview\\" value=\\"Preview\\"></p><p class=\\"isso-post-action\\"><input type=\\"button\\" name=\\"edit\\" value=\\"Edit\\"></p></section><section class=\\"isso-notification-section\\" style=\\"display: none;\\"><label><input type=\\"checkbox\\" name=\\"notification\\">Subscribe to email notification of replies</label></section></div></div><div id=\\"isso-root\\"><div class=\\"isso-comment isso-no-votes\\" id=\\"isso-1\\" data-hash=\\"34f4b563ece1\\"><div class=\\"isso-avatar\\"><svg version=\\"1.1\\" viewBox=\\"0 0 48 48\\" preserveAspectRatio=\\"xMinYMin meet\\" shape-rendering=\\"crispEdges\\" data-hash=\\"34f4b563ece1\\"><rect x=\\"0\\" y=\\"0\\" width=\\"56\\" height=\\"56\\" style=\\"fill: #f0f0f0\\"></rect><rect x=\\"4\\" y=\\"4\\" width=\\"8\\" height=\\"8\\" style=\\"fill: #5698c4\\"></rect><rect x=\\"36\\" y=\\"4\\" width=\\"8\\" height=\\"8\\" style=\\"fill: #5698c4\\"></rect><rect x=\\"4\\" y=\\"12\\" width=\\"8\\" height=\\"8\\" style=\\"fill: #5698c4\\"></rect><rect x=\\"36\\" y=\\"12\\" width=\\"8\\" height=\\"8\\" style=\\"fill: #5698c4\\"></rect><rect x=\\"4\\" y=\\"20\\" width=\\"8\\" height=\\"8\\" style=\\"fill: #5698c4\\"></rect><rect x=\\"36\\" y=\\"20\\" width=\\"8\\" height=\\"8\\" style=\\"fill: #5698c4\\"></rect><rect x=\\"4\\" y=\\"28\\" width=\\"8\\" height=\\"8\\" style=\\"fill: #5698c4\\"></rect><rect x=\\"36\\" y=\\"28\\" width=\\"8\\" height=\\"8\\" style=\\"fill: #5698c4\\"></rect><rect x=\\"4\\" y=\\"36\\" width=\\"8\\" height=\\"8\\" style=\\"fill: #5698c4\\"></rect><rect x=\\"36\\" y=\\"36\\" width=\\"8\\" height=\\"8\\" style=\\"fill: #5698c4\\"></rect><rect x=\\"12\\" y=\\"12\\" width=\\"8\\" height=\\"8\\" style=\\"fill: #5698c4\\"></rect><rect x=\\"28\\" y=\\"12\\" width=\\"8\\" height=\\"8\\" style=\\"fill: #5698c4\\"></rect><rect x=\\"12\\" y=\\"20\\" width=\\"8\\" height=\\"8\\" style=\\"fill: #5698c4\\"></rect><rect x=\\"28\\" y=\\"20\\" width=\\"8\\" height=\\"8\\" style=\\"fill: #5698c4\\"></rect><rect x=\\"20\\" y=\\"4\\" width=\\"8\\" height=\\"8\\" style=\\"fill: #5698c4\\"></rect><rect x=\\"20\\" y=\\"12\\" width=\\"8\\" height=\\"8\\" style=\\"fill: #5698c4\\"></rect><rect x=\\"20\\" y=\\"20\\" width=\\"8\\" height=\\"8\\" style=\\"fill: #5698c4\\"></rect></svg></div><div class=\\"isso-text-wrapper\\"><div class=\\"isso-comment-header\\" role=\\"meta\\"><span class=\\"isso-author\\">Commenter #1</span><span class=\\"isso-spacer\\">•</span><a class=\\"isso-permalink\\" href=\\"#isso-1\\"><time>right now</time></a><span class=\\"isso-note\\"></span></div><div class=\\"isso-text\\"><p>A comment with <em>italics</em> and <a href=\\"http://link.com\\" rel=\\"nofollow noopener\\">a link</a></p></div><div class=\\"isso-comment-footer\\"><span class=\\"isso-votes\\">0</span><a class=\\"isso-upvote\\" href=\\"#\\"><!-- Generator: IcoMoon.io --><svg width=\\"16\\" height=\\"16\\" viewBox=\\"0 0 32 32\\" xmlns=\\"http://www.w3.org/2000/svg\\" xmlns:xlink=\\"http://www.w3.org/1999/xlink\\" fill=\\"gray\\">
"<noscript>Javascript needs to be activated to view comments.</noscript><span class=\\"isso-feedlink\\"><a href=\\"../feed?uri=%2Fdemo%2F\\">Atom feed</a></span><h4 class=\\"isso-thread-heading\\">No Comments Yet</h4><div class=\\"isso-postbox\\"><div class=\\"isso-form-wrapper\\"><div class=\\"isso-textarea-wrapper\\"><textarea class=\\"isso-textarea\\" rows=\\"5\\" minlength=\\"3\\" maxlength=\\"65535\\" placeholder=\\"Type Comment Here (at least 3 chars)\\"></textarea><div class=\\"isso-preview\\"><div class=\\"isso-comment\\"><div class=\\"isso-text-wrapper\\"><div class=\\"isso-text\\"></div></div></div></div></div><section class=\\"isso-auth-section\\"><p class=\\"isso-input-wrapper\\"><label for=\\"isso-postbox-author\\">Name (optional)</label><input id=\\"isso-postbox-author\\" type=\\"text\\" name=\\"author\\" placeholder=\\"John Doe\\" value=\\"\\"></p><p class=\\"isso-input-wrapper\\"><label for=\\"isso-postbox-email\\">E-mail (optional)</label><input id=\\"isso-postbox-email\\" type=\\"email\\" name=\\"email\\" placeholder=\\"johndoe@example.com\\" value=\\"\\"></p><p class=\\"isso-input-wrapper\\"><label for=\\"isso-postbox-website\\">Website (optional)</label><input id=\\"isso-postbox-website\\" type=\\"text\\" name=\\"website\\" placeholder=\\"https://example.com\\" value=\\"\\"></p><p class=\\"isso-post-action\\"><input type=\\"submit\\" value=\\"Submit\\"></p><p class=\\"isso-post-action\\"><input type=\\"button\\" name=\\"preview\\" value=\\"Preview\\"></p><p class=\\"isso-post-action\\"><input type=\\"button\\" name=\\"edit\\" value=\\"Edit\\"></p></section><section class=\\"isso-notification-section\\" style=\\"display: none;\\"><label><input type=\\"checkbox\\" name=\\"notification\\">Subscribe to email notification of replies</label></section></div></div><div id=\\"isso-root\\"><div class=\\"isso-comment isso-no-votes\\" id=\\"isso-1\\" data-hash=\\"34f4b563ece1\\"><div class=\\"isso-avatar\\"><svg version=\\"1.1\\" viewBox=\\"0 0 48 48\\" preserveAspectRatio=\\"xMinYMin meet\\" shape-rendering=\\"crispEdges\\" data-hash=\\"34f4b563ece1\\"><rect x=\\"0\\" y=\\"0\\" width=\\"56\\" height=\\"56\\" style=\\"fill: #f0f0f0\\"></rect><rect x=\\"4\\" y=\\"4\\" width=\\"8\\" height=\\"8\\" style=\\"fill: #5698c4\\"></rect><rect x=\\"36\\" y=\\"4\\" width=\\"8\\" height=\\"8\\" style=\\"fill: #5698c4\\"></rect><rect x=\\"4\\" y=\\"12\\" width=\\"8\\" height=\\"8\\" style=\\"fill: #5698c4\\"></rect><rect x=\\"36\\" y=\\"12\\" width=\\"8\\" height=\\"8\\" style=\\"fill: #5698c4\\"></rect><rect x=\\"4\\" y=\\"20\\" width=\\"8\\" height=\\"8\\" style=\\"fill: #5698c4\\"></rect><rect x=\\"36\\" y=\\"20\\" width=\\"8\\" height=\\"8\\" style=\\"fill: #5698c4\\"></rect><rect x=\\"4\\" y=\\"28\\" width=\\"8\\" height=\\"8\\" style=\\"fill: #5698c4\\"></rect><rect x=\\"36\\" y=\\"28\\" width=\\"8\\" height=\\"8\\" style=\\"fill: #5698c4\\"></rect><rect x=\\"4\\" y=\\"36\\" width=\\"8\\" height=\\"8\\" style=\\"fill: #5698c4\\"></rect><rect x=\\"36\\" y=\\"36\\" width=\\"8\\" height=\\"8\\" style=\\"fill: #5698c4\\"></rect><rect x=\\"12\\" y=\\"12\\" width=\\"8\\" height=\\"8\\" style=\\"fill: #5698c4\\"></rect><rect x=\\"28\\" y=\\"12\\" width=\\"8\\" height=\\"8\\" style=\\"fill: #5698c4\\"></rect><rect x=\\"12\\" y=\\"20\\" width=\\"8\\" height=\\"8\\" style=\\"fill: #5698c4\\"></rect><rect x=\\"28\\" y=\\"20\\" width=\\"8\\" height=\\"8\\" style=\\"fill: #5698c4\\"></rect><rect x=\\"20\\" y=\\"4\\" width=\\"8\\" height=\\"8\\" style=\\"fill: #5698c4\\"></rect><rect x=\\"20\\" y=\\"12\\" width=\\"8\\" height=\\"8\\" style=\\"fill: #5698c4\\"></rect><rect x=\\"20\\" y=\\"20\\" width=\\"8\\" height=\\"8\\" style=\\"fill: #5698c4\\"></rect></svg></div><div class=\\"isso-text-wrapper\\"><div class=\\"isso-comment-header\\" role=\\"meta\\"><span class=\\"isso-author\\">Commenter #1</span><span class=\\"isso-spacer\\">•</span><a class=\\"isso-permalink\\" href=\\"#isso-1\\"><time>right now</time></a><span class=\\"isso-note\\"></span></div><div class=\\"isso-text\\"><p>A comment with <em>italics</em> and <a href=\\"http://link.com\\" rel=\\"nofollow noopener\\">a link</a></p></div><div class=\\"isso-comment-footer\\"><span class=\\"isso-votes\\">0</span><a class=\\"isso-upvote\\" href=\\"#\\"><!-- Generator: IcoMoon.io --><svg width=\\"16\\" height=\\"16\\" viewBox=\\"0 0 32 32\\" xmlns=\\"http://www.w3.org/2000/svg\\" xmlns:xlink=\\"http://www.w3.org/1999/xlink\\" fill=\\"gray\\">
<g>
<path d=\\"M 24.773,18.299c-0.651-0.669-7.512-7.203-7.512-7.203C 16.912,10.739, 16.456,10.56, 16,10.56c-0.458,0-0.914,0.179-1.261,0.536 c0,0-6.861,6.534-7.514,7.203c-0.651,0.669-0.696,1.872,0,2.586c 0.698,0.712, 1.669,0.77, 2.522,0L 16,14.89l 6.251,5.995 c 0.854,0.77, 1.827,0.712, 2.522,0C 25.47,20.17, 25.427,18.966, 24.773,18.299z\\">
</path>
Expand All @@ -16,4 +16,4 @@ exports[`should fill Postbox with valid data and receive 201 reply 1`] = `
</a><a class=\\"isso-reply\\" href=\\"#\\">Reply</a><a class=\\"isso-edit\\" href=\\"#\\">Edit</a><a class=\\"isso-delete\\" href=\\"#\\">Delete</a></div></div><div class=\\"isso-follow-up\\"></div></div></div>"
`;
exports[`should match blank widget to snapshot 1`] = `"<noscript>Javascript needs to be activated to view comments.</noscript><span class=\\"isso-feedlink\\"><a href=\\"../feed?uri=%2Fdemo%2Findex.html\\">Atom feed</a></span><h4 class=\\"isso-thread-heading\\">No Comments Yet</h4><div class=\\"isso-postbox\\"><div class=\\"isso-form-wrapper\\"><div class=\\"isso-textarea-wrapper\\"><textarea class=\\"isso-textarea\\" rows=\\"5\\" minlength=\\"3\\" maxlength=\\"65535\\" placeholder=\\"Type Comment Here (at least 3 chars)\\"></textarea><div class=\\"isso-preview\\"><div class=\\"isso-comment\\"><div class=\\"isso-text-wrapper\\"><div class=\\"isso-text\\"></div></div></div></div></div><section class=\\"isso-auth-section\\"><p class=\\"isso-input-wrapper\\"><label for=\\"isso-postbox-author\\">Name (optional)</label><input id=\\"isso-postbox-author\\" type=\\"text\\" name=\\"author\\" placeholder=\\"John Doe\\" value=\\"\\"></p><p class=\\"isso-input-wrapper\\"><label for=\\"isso-postbox-email\\">E-mail (optional)</label><input id=\\"isso-postbox-email\\" type=\\"email\\" name=\\"email\\" placeholder=\\"johndoe@example.com\\" value=\\"\\"></p><p class=\\"isso-input-wrapper\\"><label for=\\"isso-postbox-website\\">Website (optional)</label><input id=\\"isso-postbox-website\\" type=\\"text\\" name=\\"website\\" placeholder=\\"https://example.com\\" value=\\"\\"></p><p class=\\"isso-post-action\\"><input type=\\"submit\\" value=\\"Submit\\"></p><p class=\\"isso-post-action\\"><input type=\\"button\\" name=\\"preview\\" value=\\"Preview\\"></p><p class=\\"isso-post-action\\"><input type=\\"button\\" name=\\"edit\\" value=\\"Edit\\"></p></section><section class=\\"isso-notification-section\\" style=\\"display: none;\\"><label><input type=\\"checkbox\\" name=\\"notification\\">Subscribe to email notification of replies</label></section></div></div><div id=\\"isso-root\\"></div>"`;
exports[`should match blank widget to snapshot 1`] = `"<noscript>Javascript needs to be activated to view comments.</noscript><span class=\\"isso-feedlink\\"><a href=\\"../feed?uri=%2Fdemo%2F\\">Atom feed</a></span><h4 class=\\"isso-thread-heading\\">No Comments Yet</h4><div class=\\"isso-postbox\\"><div class=\\"isso-form-wrapper\\"><div class=\\"isso-textarea-wrapper\\"><textarea class=\\"isso-textarea\\" rows=\\"5\\" minlength=\\"3\\" maxlength=\\"65535\\" placeholder=\\"Type Comment Here (at least 3 chars)\\"></textarea><div class=\\"isso-preview\\"><div class=\\"isso-comment\\"><div class=\\"isso-text-wrapper\\"><div class=\\"isso-text\\"></div></div></div></div></div><section class=\\"isso-auth-section\\"><p class=\\"isso-input-wrapper\\"><label for=\\"isso-postbox-author\\">Name (optional)</label><input id=\\"isso-postbox-author\\" type=\\"text\\" name=\\"author\\" placeholder=\\"John Doe\\" value=\\"\\"></p><p class=\\"isso-input-wrapper\\"><label for=\\"isso-postbox-email\\">E-mail (optional)</label><input id=\\"isso-postbox-email\\" type=\\"email\\" name=\\"email\\" placeholder=\\"johndoe@example.com\\" value=\\"\\"></p><p class=\\"isso-input-wrapper\\"><label for=\\"isso-postbox-website\\">Website (optional)</label><input id=\\"isso-postbox-website\\" type=\\"text\\" name=\\"website\\" placeholder=\\"https://example.com\\" value=\\"\\"></p><p class=\\"isso-post-action\\"><input type=\\"submit\\" value=\\"Submit\\"></p><p class=\\"isso-post-action\\"><input type=\\"button\\" name=\\"preview\\" value=\\"Preview\\"></p><p class=\\"isso-post-action\\"><input type=\\"button\\" name=\\"edit\\" value=\\"Edit\\"></p></section><section class=\\"isso-notification-section\\" style=\\"display: none;\\"><label><input type=\\"checkbox\\" name=\\"notification\\">Subscribe to email notification of replies</label></section></div></div><div id=\\"isso-root\\"></div>"`;
2 changes: 1 addition & 1 deletion isso/js/tests/integration/highlight-comments.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ beforeEach(async () => {
ISSO_ENDPOINT + '/demo#isso-1',
{ waitUntil: 'load' }
)
await expect(page.url()).toBe(ISSO_ENDPOINT + '/demo/index.html#isso-1');
await expect(page.url()).toBe(ISSO_ENDPOINT + '/demo/#isso-1');
})

test('Linked should be highlighted', async () => {
Expand Down
4 changes: 2 additions & 2 deletions isso/js/tests/integration/puppet.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ beforeEach(async () => {
ISSO_ENDPOINT + '/demo',
{ waitUntil: 'load' }
)
await expect(page.url()).toBe(ISSO_ENDPOINT + '/demo/index.html');
await expect(page.url()).toBe(ISSO_ENDPOINT + '/demo/');

// See also other waitForX options:
// https://github.com/puppeteer/puppeteer/blob/main/docs/api.md#pagewaitforselectorselector-options
Expand Down Expand Up @@ -196,7 +196,7 @@ test("should execute GET/PUT/POST/DELETE requests correctly", async () => {
page.off('request', createHandler);
};
await page.on('request', createHandler);
await page.goto(ISSO_ENDPOINT + '/new?uri=%2Fdemo%2Findex.html');
await page.goto(ISSO_ENDPOINT + '/new?uri=%2Fdemo%2F');

// Reload page to inspect new/changed/deleted comments
await page.goto(
Expand Down
2 changes: 1 addition & 1 deletion isso/js/tests/screenshots/screenshots.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ beforeEach(async () => {
ISSO_ENDPOINT + '/demo',
{ waitUntil: 'load' }
)
await expect(page.url()).toBe(ISSO_ENDPOINT + '/demo/index.html');
await expect(page.url()).toBe(ISSO_ENDPOINT + '/demo/');

await page.waitForSelector('.isso-textarea');
await page.setViewport({
Expand Down
Loading

0 comments on commit d098ab3

Please sign in to comment.