Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions app/controllers/dashboard.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import ajax from '../utils/ajax';
const TO_SHOW = 5;

export default class DashboardController extends Controller {
@service session;
@service store;

hasMore = false;
Expand Down
33 changes: 0 additions & 33 deletions app/controllers/me/crates.js

This file was deleted.

14 changes: 6 additions & 8 deletions app/routes/me/crates.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,13 @@ import { service } from '@ember/service';
import AuthenticatedRoute from '../-authenticated-route';

export default class MeCratesRoute extends AuthenticatedRoute {
@service store;
@service router;

queryParams = {
page: { refreshModel: true },
sort: { refreshModel: true },
};
redirect(model, transition) {
// Redirect to the user's profile page (/users/{username}) with the same query parameters
const username = this.session.currentUser.login;
const queryParams = transition.to.queryParams;

model(params) {
params.user_id = this.session.currentUser.id;
return this.store.query('crate', params);
this.router.transitionTo('user', username, { queryParams });
}
}
8 changes: 7 additions & 1 deletion app/routes/user.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import { service } from '@ember/service';
export default class UserRoute extends Route {
@service notifications;
@service router;
@service session;
@service store;

queryParams = {
Expand All @@ -18,7 +19,12 @@ export default class UserRoute extends Route {
let user = await this.store.queryRecord('user', { user_id });

params.user_id = user.get('id');
params.include_yanked = 'n';

let isCurrentUser = params.user_id === this.session.currentUser?.id;
if (!isCurrentUser) {
params.include_yanked = 'n';
}

let crates = await this.store.query('crate', params);

return { crates, user };
Expand Down
2 changes: 1 addition & 1 deletion app/templates/dashboard.gjs
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ import formatNum from 'crates-io/helpers/format-num';
</h2>

{{#if @controller.hasMoreCrates}}
<LinkTo @route='me.crates' class='my-crates-link'>Show all</LinkTo>
<LinkTo @route='user' @model={{@controller.session.currentUser.login}} class='my-crates-link'>Show all</LinkTo>
{{/if}}
</div>
<CrateDownloadsList @crates={{@controller.visibleCrates}} />
Expand Down
10 changes: 0 additions & 10 deletions app/templates/me/crates.css

This file was deleted.

40 changes: 0 additions & 40 deletions app/templates/me/crates.gjs

This file was deleted.

11 changes: 11 additions & 0 deletions e2e/routes/me/crates.spec.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
import { expect, test } from '@/e2e/helper';

test.describe('Route | me/crates', { tag: '@routes' }, () => {
test('redirects to user profile page', async ({ page, msw }) => {
let user = msw.db.user.create({ login: 'johnnydee' });
await msw.authenticateAs(user);

await page.goto('/me/crates?page=2&sort=downloads');
await expect(page).toHaveURL('/users/johnnydee?page=2&sort=downloads');
});
});
18 changes: 18 additions & 0 deletions tests/routes/me/crates-test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
import { currentURL } from '@ember/test-helpers';
import { module, test } from 'qunit';

import { setupApplicationTest } from 'crates-io/tests/helpers';

import { visit } from '../../helpers/visit-ignoring-abort';

module('Route | me/crates', function (hooks) {
setupApplicationTest(hooks);

test('redirects to user profile page', async function (assert) {
let user = this.db.user.create({ login: 'johnnydee' });
this.authenticateAs(user);

await visit('/me/crates?page=2&sort=downloads');
assert.strictEqual(currentURL(), '/users/johnnydee?page=2&sort=downloads');
});
});
Loading