Skip to content

Commit 6fbb8f7

Browse files
authored
chore: update RWA to make running locally easier (#1524)
* chore: fix typings issues from yarn start when starting the backend dev server * reseed data as test shouldnt fail for new users * fix aws exports not failing RWA if missing * use @cypress/vite-dev-server to use different port from app so users can go between e2e and ct at the same time * fix types * run prettier * fix unit tests * fix linting issue by breaking chainable up
1 parent d6f7f39 commit 6fbb8f7

File tree

14 files changed

+16545
-16395
lines changed

14 files changed

+16545
-16395
lines changed

backend/app.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ const schemaWithResolvers = addResolversToSchema({
4444
const app = express();
4545

4646
/* istanbul ignore next */
47-
// @ts-ignore
47+
// @ts-expect-error
4848
if (global.__coverage__) {
4949
require("@cypress/code-coverage/middleware/express")(app);
5050
}
@@ -55,16 +55,19 @@ app.use(bodyParser.urlencoded({ extended: false }));
5555
app.use(bodyParser.json());
5656

5757
app.use(
58+
// @ts-expect-error
5859
session({
5960
secret: "session secret",
6061
resave: false,
6162
saveUninitialized: false,
6263
unset: "destroy",
6364
})
6465
);
66+
// @ts-expect-error
6567
app.use(passport.initialize());
6668
app.use(passport.session());
6769

70+
// @ts-expect-error
6871
app.use(paginate.middleware(+process.env.PAGINATION_PAGE_SIZE!));
6972

7073
/* istanbul ignore next */

backend/auth.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ router.post("/login", passport.authenticate("local"), (req: Request, res: Respon
4848

4949
router.post("/logout", (req: Request, res: Response): void => {
5050
res.clearCookie("connect.sid");
51-
req.logout();
51+
req.logout(() => res.redirect("/"));
5252
req.session!.destroy(function (err) {
5353
res.redirect("/");
5454
});

backend/transaction-routes.ts

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,8 @@ router.get(
4040
const transactions = getTransactionsForUserForApi(req.user?.id!, req.query);
4141

4242
const { totalPages, data: paginatedItems } = getPaginatedItems(
43-
req.query.page,
44-
req.query.limit,
43+
req.query.page as unknown as number,
44+
req.query.limit as unknown as number,
4545
transactions
4646
);
4747

@@ -72,8 +72,8 @@ router.get(
7272
const transactions = getTransactionsForUserContacts(req.user?.id!, req.query);
7373

7474
const { totalPages, data: paginatedItems } = getPaginatedItems(
75-
req.query.page,
76-
req.query.limit,
75+
req.query.page as unknown as number,
76+
req.query.limit as unknown as number,
7777
transactions
7878
);
7979

@@ -96,7 +96,7 @@ router.get(
9696
ensureAuthenticated,
9797
validateMiddleware(isTransactionPublicQSValidator),
9898
(req, res) => {
99-
const isFirstPage = req.query.page === 1;
99+
const isFirstPage = (req.query.page as unknown as number) === 1;
100100

101101
/* istanbul ignore next */
102102
let transactions = !isEmpty(req.query)
@@ -115,8 +115,8 @@ router.get(
115115
}
116116

117117
const { totalPages, data: paginatedItems } = getPaginatedItems(
118-
req.query.page,
119-
req.query.limit,
118+
req.query.page as unknown as number,
119+
req.query.limit as unknown as number,
120120
isFirstPage ? publicTransactionsWithContacts : publicTransactions
121121
);
122122

backend/user-routes.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ router.get("/search", ensureAuthenticated, validateMiddleware([searchValidation]
3333
const { q } = req.query;
3434

3535
/* istanbul ignore next */
36-
const users = removeUserFromResults(req.user?.id!, searchUsers(q));
36+
const users = removeUserFromResults(req.user?.id!, searchUsers(q as string));
3737

3838
res.status(200).json({ results: users });
3939
});

cypress.config.ts

Lines changed: 31 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,20 @@ import axios from "axios";
44
import dotenv from "dotenv";
55
import Promise from "bluebird";
66
import codeCoverageTask from "@cypress/code-coverage/task";
7+
import { devServer } from "@cypress/vite-dev-server";
78
import { defineConfig } from "cypress";
9+
import { mergeConfig, loadEnv } from "vite";
810

911
dotenv.config({ path: ".env.local" });
1012
dotenv.config();
1113

12-
const awsConfig = require(path.join(__dirname, "./aws-exports-es5.js"));
14+
let awsConfig = {
15+
default: undefined,
16+
};
17+
18+
try {
19+
awsConfig = require(path.join(__dirname, "./aws-exports-es5.js"));
20+
} catch (e) {}
1321

1422
module.exports = defineConfig({
1523
projectId: "7s5okt",
@@ -52,9 +60,28 @@ module.exports = defineConfig({
5260
googleClientSecret: process.env.VITE_GOOGLE_CLIENT_SECRET,
5361
},
5462
component: {
55-
devServer: {
56-
framework: "react",
57-
bundler: "vite",
63+
devServer(devServerConfig) {
64+
const viteConfig = require("./vite.config.ts");
65+
const conf = {
66+
define: {
67+
"process.env": loadEnv("development", process.cwd(), "VITE"),
68+
},
69+
server: {
70+
/**
71+
* start the CT dev server on a different port than the full RWA
72+
* so users can switch between CT and E2E testing without having to
73+
* stop/start the RWA dev server.
74+
*/
75+
port: 3002,
76+
},
77+
};
78+
79+
const resolvedViteConfig = mergeConfig(viteConfig, conf);
80+
return devServer({
81+
...devServerConfig,
82+
framework: "react",
83+
viteConfig: resolvedViteConfig,
84+
});
5885
},
5986
specPattern: "src/**/*.cy.{js,jsx,ts,tsx}",
6087
supportFile: "cypress/support/component.ts",

cypress/support/commands.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -116,9 +116,8 @@ Cypress.Commands.add("reactComponent", { prevSubject: "element" }, ($el) => {
116116
});
117117

118118
Cypress.Commands.add("setTransactionAmountRange", (min, max) => {
119-
cy.getBySel("transaction-list-filter-amount-range-button")
120-
.scrollIntoView()
121-
.click({ force: true });
119+
cy.getBySel("transaction-list-filter-amount-range-button").scrollIntoView();
120+
cy.getBySel("transaction-list-filter-amount-range-button").click({ force: true });
122121

123122
return cy
124123
.getBySelLike("filter-amount-range-slider")

cypress/tests/ui/transaction-view.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ describe("Transaction View", function () {
5252
cy.wait("@getTransaction");
5353

5454
cy.getBySelLike("like-button").click();
55-
cy.getBySelLike("like-count").should("contain", 1);
55+
cy.getBySelLike("like-count").should("contain", 2);
5656
cy.getBySelLike("like-button").should("be.disabled");
5757
cy.visualSnapshot("Transaction after Liked");
5858
});

0 commit comments

Comments
 (0)