Skip to content

Commit 4e8d15a

Browse files
authored
Merge pull request #1288 from input-output-hk/djo/prettier-for-explorer
Prettier formatter for explorer
2 parents a5e7f42 + ac40040 commit 4e8d15a

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

45 files changed

+1188
-820
lines changed

.github/workflows/docs.yml

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -102,13 +102,15 @@ jobs:
102102

103103
- name: Test explorer
104104
working-directory: mithril-explorer
105-
run: |
106-
make test
105+
run: make test
106+
107+
- name: Check explorer
108+
working-directory: mithril-explorer
109+
run: make lint
107110

108111
- name: Build Explorer
109112
working-directory: mithril-explorer
110-
run: |
111-
make build
113+
run: make build
112114

113115
- name: Publish Explorer build
114116
uses: actions/upload-artifact@v3

mithril-explorer/.eslintrc.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
{
22
"extends": "next/core-web-vitals",
33
"rules": {}
4-
}
4+
}

mithril-explorer/.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414

1515
# production
1616
/build
17+
/explorer
1718

1819
# misc
1920
.DS_Store

mithril-explorer/.prettierignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
out
2+
explorer

mithril-explorer/.prettierrc

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"printWidth": 100,
3+
"bracketSameLine": true
4+
}

mithril-explorer/Makefile

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,10 @@ watch-test: yarn.lock
2929

3030
lint:
3131
yarn run lint
32+
yarn run pretty:check
33+
34+
format:
35+
yarn run pretty:write
3236

3337
clean:
3438
rm -rf build
@@ -55,3 +59,5 @@ upgrade: clean install
5559
jest@latest \
5660
jest-environment-jsdom@latest \
5761
next-router-mock@latest \
62+
prettier@latest \
63+
prettier-eslint@latest
Lines changed: 21 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,43 +1,47 @@
1-
import {render, screen} from '@testing-library/react'
2-
import '@testing-library/jest-dom'
1+
import { render, screen } from "@testing-library/react";
2+
import "@testing-library/jest-dom";
33
import AggregatorSetter from "../src/components/AggregatorSetter";
4-
import {initStore} from "./helpers";
5-
import {Provider} from "react-redux";
4+
import { initStore } from "./helpers";
5+
import { Provider } from "react-redux";
66
import default_available_aggregators from "../src/aggregators-list";
7-
import {settingsSlice} from "../src/store/settingsSlice";
7+
import { settingsSlice } from "../src/store/settingsSlice";
88

99
function renderAggregatorSetter(default_state = undefined) {
1010
const store = initStore(default_state);
1111
return [
1212
render(
1313
<Provider store={store}>
14-
<AggregatorSetter/>
15-
</Provider>
14+
<AggregatorSetter />
15+
</Provider>,
1616
),
17-
store
17+
store,
1818
];
1919
}
2020

21-
describe('AggregatorSetter', () => {
22-
it('Load with data from the store', () => {
21+
describe("AggregatorSetter", () => {
22+
it("Load with data from the store", () => {
2323
const [_, store] = renderAggregatorSetter();
2424
const settingsState = store.getState().settings;
2525

26-
expect(screen.getByRole('option', {name: settingsState.selectedAggregator}).selected).toBe(true);
27-
expect(screen.getAllByRole('option').map(o => o.value)).toEqual(settingsState.availableAggregators);
26+
expect(screen.getByRole("option", { name: settingsState.selectedAggregator }).selected).toBe(
27+
true,
28+
);
29+
expect(screen.getAllByRole("option").map((o) => o.value)).toEqual(
30+
settingsState.availableAggregators,
31+
);
2832
});
2933

30-
it('Load custom aggregators', () => {
34+
it("Load custom aggregators", () => {
3135
const customAggregator = "http://aggregator.test";
3236
renderAggregatorSetter({
3337
settings: {
3438
...settingsSlice.getInitialState(),
3539
selectedAggregator: customAggregator,
3640
availableAggregators: [...default_available_aggregators, customAggregator],
37-
}
41+
},
3842
});
3943

40-
expect(screen.getByRole('option', {name: customAggregator}).selected).toBe(true);
41-
expect(screen.getAllByRole('option').map(o => o.value)).toContain(customAggregator);
44+
expect(screen.getByRole("option", { name: customAggregator }).selected).toBe(true);
45+
expect(screen.getAllByRole("option").map((o) => o.value)).toContain(customAggregator);
4246
});
43-
});
47+
});
Lines changed: 104 additions & 91 deletions
Original file line numberDiff line numberDiff line change
@@ -1,121 +1,134 @@
1-
import {render, screen} from '@testing-library/react'
2-
import '@testing-library/jest-dom'
3-
import {initStore} from "./helpers";
4-
import {Provider} from "react-redux";
5-
import {poolsSlice} from "../src/store/poolsSlice";
1+
import { render, screen } from "@testing-library/react";
2+
import "@testing-library/jest-dom";
3+
import { initStore } from "./helpers";
4+
import { Provider } from "react-redux";
5+
import { poolsSlice } from "../src/store/poolsSlice";
66
import PoolTicker from "../src/components/PoolTicker";
7-
import {getCExplorerUrlForPool} from "../src/utils";
7+
import { getCExplorerUrlForPool } from "../src/utils";
88

99
function renderPoolTickerComponent(aggregator, partyId, default_state = undefined) {
1010
const store = initStore(default_state);
1111
return [
1212
render(
1313
<Provider store={store}>
14-
<PoolTicker aggregator={aggregator} partyId={partyId}/>
15-
</Provider>
14+
<PoolTicker aggregator={aggregator} partyId={partyId} />
15+
</Provider>,
1616
),
17-
store
17+
store,
1818
];
1919
}
2020

21-
describe('PoolTicker', () => {
22-
it('Pool ticker not on the three main network doesn\'t show link to cexplorer', () => {
21+
describe("PoolTicker", () => {
22+
it("Pool ticker not on the three main network doesn't show link to cexplorer", () => {
2323
const partyId = "pool1zmtm8yef33z2n7x4nn0kvv9xpzjuj7725p9y9m5t960g5qy51ua";
2424
const poolTicker = "[MITHRIL] Mithril Signer";
25-
renderPoolTickerComponent(
26-
"myaggregator",
27-
partyId,
28-
{
25+
renderPoolTickerComponent("myaggregator", partyId, {
2926
pools: {
3027
...poolsSlice.getInitialState(),
3128
list: [
3229
{
3330
aggregator: "myaggregator",
3431
network: "devnet",
35-
pools: [{
36-
"party_id": partyId,
37-
"pool_ticker": poolTicker,
38-
"has_registered": true,
39-
}],
40-
}],
32+
pools: [
33+
{
34+
party_id: partyId,
35+
pool_ticker: poolTicker,
36+
has_registered: true,
37+
},
38+
],
39+
},
40+
],
4141
},
4242
});
4343

4444
expect(screen.getByText(poolTicker));
45-
expect(screen.queryByRole('link')).toBe(null);
45+
expect(screen.queryByRole("link")).toBe(null);
4646
});
4747

48-
it.each(["mainnet", "preprod", "preview"])
49-
('Pool ticker on %s network link to cexplorer', (network) => {
50-
const partyId = "pool1zmtm8yef33z2n7x4nn0kvv9xpzjuj7725p9y9m5t960g5qy51ua";
51-
const poolTicker = "[MITHRIL] Mithril Signer";
52-
renderPoolTickerComponent(
53-
"myaggregator",
54-
partyId,
55-
{
56-
pools: {
57-
...poolsSlice.getInitialState(),
58-
list: [
59-
{
60-
aggregator: "myaggregator",
61-
network: network,
62-
pools: [{
63-
"party_id": partyId,
64-
"pool_ticker": poolTicker,
65-
"has_registered": true,
66-
}],
67-
}],
68-
},
69-
});
48+
it.each(["mainnet", "preprod", "preview"])(
49+
"Pool ticker on %s network link to cexplorer",
50+
(network) => {
51+
const partyId = "pool1zmtm8yef33z2n7x4nn0kvv9xpzjuj7725p9y9m5t960g5qy51ua";
52+
const poolTicker = "[MITHRIL] Mithril Signer";
53+
renderPoolTickerComponent("myaggregator", partyId, {
54+
pools: {
55+
...poolsSlice.getInitialState(),
56+
list: [
57+
{
58+
aggregator: "myaggregator",
59+
network: network,
60+
pools: [
61+
{
62+
party_id: partyId,
63+
pool_ticker: poolTicker,
64+
has_registered: true,
65+
},
66+
],
67+
},
68+
],
69+
},
70+
});
7071

71-
expect(screen.getByText(poolTicker));
72-
expect(screen.getByRole('link')).toHaveAttribute('href', getCExplorerUrlForPool(network, partyId));
73-
});
72+
expect(screen.getByText(poolTicker));
73+
expect(screen.getByRole("link")).toHaveAttribute(
74+
"href",
75+
getCExplorerUrlForPool(network, partyId),
76+
);
77+
},
78+
);
7479

75-
it.each(["mainnet", "preprod", "preview"])
76-
('Not available Pool ticker on %s network still show link to cexplorer', (network) => {
77-
const partyId = "pool1zmtm8yef33z2n7x4nn0kvv9xpzjuj7725p9y9m5t960g5qy51ua";
78-
renderPoolTickerComponent(
79-
"myaggregator",
80-
partyId,
81-
{
82-
pools: {
83-
...poolsSlice.getInitialState(),
84-
list: [
85-
{
86-
aggregator: "myaggregator",
87-
network: network,
88-
pools: [{
89-
"party_id": partyId,
90-
"has_registered": true,
91-
}],
92-
}],
93-
},
94-
});
80+
it.each(["mainnet", "preprod", "preview"])(
81+
"Not available Pool ticker on %s network still show link to cexplorer",
82+
(network) => {
83+
const partyId = "pool1zmtm8yef33z2n7x4nn0kvv9xpzjuj7725p9y9m5t960g5qy51ua";
84+
renderPoolTickerComponent("myaggregator", partyId, {
85+
pools: {
86+
...poolsSlice.getInitialState(),
87+
list: [
88+
{
89+
aggregator: "myaggregator",
90+
network: network,
91+
pools: [
92+
{
93+
party_id: partyId,
94+
has_registered: true,
95+
},
96+
],
97+
},
98+
],
99+
},
100+
});
95101

96-
expect(screen.getByText("Not available"));
97-
expect(screen.getByRole('link')).toHaveAttribute('href', getCExplorerUrlForPool(network, partyId));
98-
});
102+
expect(screen.getByText("Not available"));
103+
expect(screen.getByRole("link")).toHaveAttribute(
104+
"href",
105+
getCExplorerUrlForPool(network, partyId),
106+
);
107+
},
108+
);
99109

100-
it.each(["mainnet", "preprod", "preview"])
101-
('Not available Pool ticker on %s network still show link to cexplorer even without pools data', (network) => {
102-
const partyId = "pool1zmtm8yef33z2n7x4nn0kvv9xpzjuj7725p9y9m5t960g5qy51ua";
103-
renderPoolTickerComponent(
104-
"myaggregator",
105-
partyId,
106-
{
107-
pools: {
108-
...poolsSlice.getInitialState(),
109-
list: [
110-
{
111-
aggregator: "myaggregator",
112-
network: network,
113-
pools: [],
114-
}],
115-
},
116-
});
110+
it.each(["mainnet", "preprod", "preview"])(
111+
"Not available Pool ticker on %s network still show link to cexplorer even without pools data",
112+
(network) => {
113+
const partyId = "pool1zmtm8yef33z2n7x4nn0kvv9xpzjuj7725p9y9m5t960g5qy51ua";
114+
renderPoolTickerComponent("myaggregator", partyId, {
115+
pools: {
116+
...poolsSlice.getInitialState(),
117+
list: [
118+
{
119+
aggregator: "myaggregator",
120+
network: network,
121+
pools: [],
122+
},
123+
],
124+
},
125+
});
117126

118-
expect(screen.getByText("Not available"));
119-
expect(screen.getByRole('link')).toHaveAttribute('href', getCExplorerUrlForPool(network, partyId));
120-
});
121-
});
127+
expect(screen.getByText("Not available"));
128+
expect(screen.getByRole("link")).toHaveAttribute(
129+
"href",
130+
getCExplorerUrlForPool(network, partyId),
131+
);
132+
},
133+
);
134+
});

mithril-explorer/__tests__/helpers.js

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
import {saveToLocalStorage, storeBuilder} from "../src/store/store";
2-
import * as mockRouter from 'next-router-mock';
1+
import { saveToLocalStorage, storeBuilder } from "../src/store/store";
2+
import * as mockRouter from "next-router-mock";
33

4-
const baseLocation = 'http://localhost';
4+
const baseLocation = "http://localhost";
55

66
function initStore(default_state = undefined) {
77
if (default_state) {
@@ -31,7 +31,7 @@ const mockNextNavigation = {
3131
*/
3232
function resetLocation() {
3333
setLocation(new URL(baseLocation));
34-
mockRouter.memoryRouter.setCurrentUrl('/');
34+
mockRouter.memoryRouter.setCurrentUrl("/");
3535
}
3636

3737
/**
@@ -41,14 +41,14 @@ function resetLocation() {
4141
* @param url The new location
4242
*/
4343
function setLocation(url) {
44-
Object.defineProperty(window, 'location', {
44+
Object.defineProperty(window, "location", {
4545
set(v) {
4646
this._href = v;
4747
},
4848
get() {
4949
return this._href;
50-
}
51-
})
50+
},
51+
});
5252

5353
window.location = url;
5454
}
@@ -69,4 +69,4 @@ module.exports = {
6969
setLocation,
7070
setLocationToAggregator,
7171
resetLocation,
72-
}
72+
};

0 commit comments

Comments
 (0)