Skip to content
This repository was archived by the owner on Feb 10, 2025. It is now read-only.

Commit 529a70a

Browse files
authored
Merge pull request #244 from City-of-Helsinki/TILA-1235
TILA-1235 display equipment list
2 parents 9bba762 + 3b98e7e commit 529a70a

16 files changed

Lines changed: 672 additions & 90 deletions

File tree

tilavaraus.graphql

Lines changed: 31 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -556,7 +556,7 @@ type Query {
556556
last: Int = null
557557
begin: DateTime = null
558558
end: DateTime = null
559-
state: String = null
559+
state: [String] = null
560560
requested: Boolean = null
561561

562562
"""Järjestys"""
@@ -1363,18 +1363,18 @@ input ReservationUnitCreateMutationInput {
13631363
Authentication required for reserving this reservation unit. Possible values are WEAK, STRONG.
13641364
"""
13651365
authentication: String
1366-
termsOfUseFi: String
1367-
termsOfUseEn: String
1368-
termsOfUseSv: String
1369-
additionalInstructionsFi: String
1370-
additionalInstructionsEn: String
1371-
additionalInstructionsSv: String
13721366
nameFi: String
13731367
nameEn: String
13741368
nameSv: String
13751369
descriptionFi: String
13761370
descriptionEn: String
13771371
descriptionSv: String
1372+
additionalInstructionsFi: String
1373+
additionalInstructionsEn: String
1374+
additionalInstructionsSv: String
1375+
termsOfUseFi: String
1376+
termsOfUseEn: String
1377+
termsOfUseSv: String
13781378
clientMutationId: String
13791379
}
13801380

@@ -1467,18 +1467,18 @@ type ReservationUnitCreateMutationPayload {
14671467
Authentication required for reserving this reservation unit. Possible values are WEAK, STRONG.
14681468
"""
14691469
authentication: String
1470-
termsOfUseFi: String
1471-
termsOfUseEn: String
1472-
termsOfUseSv: String
1473-
additionalInstructionsFi: String
1474-
additionalInstructionsEn: String
1475-
additionalInstructionsSv: String
14761470
nameFi: String
14771471
nameEn: String
14781472
nameSv: String
14791473
descriptionFi: String
14801474
descriptionEn: String
14811475
descriptionSv: String
1476+
additionalInstructionsFi: String
1477+
additionalInstructionsEn: String
1478+
additionalInstructionsSv: String
1479+
termsOfUseFi: String
1480+
termsOfUseEn: String
1481+
termsOfUseSv: String
14821482

14831483
"""May contain more than one error for same field."""
14841484
errors: [ErrorType]
@@ -1832,18 +1832,18 @@ input ReservationUnitUpdateMutationInput {
18321832
Authentication required for reserving this reservation unit. Possible values are WEAK, STRONG.
18331833
"""
18341834
authentication: String
1835-
termsOfUseFi: String
1836-
termsOfUseEn: String
1837-
termsOfUseSv: String
1838-
additionalInstructionsFi: String
1839-
additionalInstructionsEn: String
1840-
additionalInstructionsSv: String
18411835
nameFi: String
18421836
nameEn: String
18431837
nameSv: String
18441838
descriptionFi: String
18451839
descriptionEn: String
18461840
descriptionSv: String
1841+
additionalInstructionsFi: String
1842+
additionalInstructionsEn: String
1843+
additionalInstructionsSv: String
1844+
termsOfUseFi: String
1845+
termsOfUseEn: String
1846+
termsOfUseSv: String
18471847
clientMutationId: String
18481848
}
18491849

@@ -1936,18 +1936,18 @@ type ReservationUnitUpdateMutationPayload {
19361936
Authentication required for reserving this reservation unit. Possible values are WEAK, STRONG.
19371937
"""
19381938
authentication: String
1939-
termsOfUseFi: String
1940-
termsOfUseEn: String
1941-
termsOfUseSv: String
1942-
additionalInstructionsFi: String
1943-
additionalInstructionsEn: String
1944-
additionalInstructionsSv: String
19451939
nameFi: String
19461940
nameEn: String
19471941
nameSv: String
19481942
descriptionFi: String
19491943
descriptionEn: String
19501944
descriptionSv: String
1945+
additionalInstructionsFi: String
1946+
additionalInstructionsEn: String
1947+
additionalInstructionsSv: String
1948+
termsOfUseFi: String
1949+
termsOfUseEn: String
1950+
termsOfUseSv: String
19511951

19521952
"""May contain more than one error for same field."""
19531953
errors: [ErrorType]
@@ -2606,12 +2606,12 @@ input UnitUpdateMutationInput {
26062606
nameFi: String
26072607
nameEn: String
26082608
nameSv: String
2609-
shortDescriptionFi: String
2610-
shortDescriptionEn: String
2611-
shortDescriptionSv: String
26122609
descriptionFi: String
26132610
descriptionEn: String
26142611
descriptionSv: String
2612+
shortDescriptionFi: String
2613+
shortDescriptionEn: String
2614+
shortDescriptionSv: String
26152615
clientMutationId: String
26162616
}
26172617

@@ -2624,12 +2624,12 @@ type UnitUpdateMutationPayload {
26242624
nameFi: String
26252625
nameEn: String
26262626
nameSv: String
2627-
shortDescriptionFi: String
2628-
shortDescriptionEn: String
2629-
shortDescriptionSv: String
26302627
descriptionFi: String
26312628
descriptionEn: String
26322629
descriptionSv: String
2630+
shortDescriptionFi: String
2631+
shortDescriptionEn: String
2632+
shortDescriptionSv: String
26332633

26342634
"""May contain more than one error for same field."""
26352635
errors: [ErrorType]

ui/components/common/Accordion.tsx

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,10 @@ const HeadingButton = styled(Button).attrs({
5858
margin-right: auto;
5959
}
6060
61+
> div {
62+
margin-right: 0;
63+
}
64+
6165
:focus {
6266
outline: 2px solid var(--color-coat-of-arms);
6367
}
@@ -79,6 +83,7 @@ const Accordion = ({
7983
onToggle,
8084
id,
8185
theme = "default",
86+
...rest
8287
}: Props): JSX.Element => {
8388
const { isOpen, openAccordion, closeAccordion } = useAccordion({
8489
initiallyOpen: open,
@@ -99,7 +104,7 @@ const Accordion = ({
99104
<IconAngleDown aria-hidden />
100105
);
101106
return (
102-
<AccordionElement id={id}>
107+
<AccordionElement id={id} {...rest}>
103108
<HeadingButton
104109
variant="supplementary"
105110
iconRight={icon}

ui/components/reservation-unit/Address.tsx

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import {
88
ReservationUnitByPkType,
99
UnitType,
1010
} from "../../modules/gql-types";
11+
import { H4 } from "../../modules/style/typography";
1112

1213
type Props = {
1314
reservationUnit: ReservationUnitByPkType;
@@ -18,10 +19,8 @@ const Container = styled.div`
1819
margin-bottom: var(--spacing-layout-l);
1920
`;
2021

21-
const Name = styled.div`
22-
font-size: var(--fontsize-heading-m);
23-
font-family: var(--font-bold);
24-
margin-bottom: var(--spacing-m);
22+
const Name = styled(H4)`
23+
margin-top: 0;
2524
`;
2625

2726
const AddressLine = styled.div`

ui/components/reservation-unit/Head.tsx

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ import { MediumButton } from "../../styles/util";
2929
import { ReservationUnitByPkType } from "../../modules/gql-types";
3030
import { getPrice } from "../../modules/reservationUnit";
3131
import KorosDefault from "../common/KorosDefault";
32+
import { H1, H2 } from "../../modules/style/typography";
3233

3334
interface PropsType {
3435
reservationUnit: ReservationUnitByPkType;
@@ -77,14 +78,10 @@ const Props = styled.div`
7778
font-weight: 500;
7879
`;
7980

80-
const ReservationUnitName = styled.h1`
81-
font-size: var(--fontsize-heading-l);
82-
margin: var(--spacing-2-xs) 0 var(--spacing-xs);
83-
`;
81+
const ReservationUnitName = styled(H1)``;
8482

85-
const BuildingName = styled.div`
86-
font-size: var(--fontsize-heading-m);
87-
font-family: var(--font-bold);
83+
const UnitName = styled(H2)`
84+
margin-top: 0;
8885
`;
8986

9087
const ButtonContainer = styled.div`
@@ -156,9 +153,7 @@ const Head = ({
156153
<ReservationUnitName>
157154
{getTranslation(reservationUnit, "name")}
158155
</ReservationUnitName>
159-
<BuildingName>
160-
{getTranslation(reservationUnit.unit, "name")}
161-
</BuildingName>
156+
<UnitName>{getTranslation(reservationUnit.unit, "name")}</UnitName>
162157
<JustForMobile style={{ marginTop: "var(--spacing-l)" }}>
163158
<Images
164159
images={reservationUnit.images}

ui/cypress/integration/reservation-unit-single.ts

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ import {
3131
calendarWrapper,
3232
reservationQuotaNotification,
3333
} from "model/reservation-creation";
34-
import { addressContainer } from "model/reservation-unit";
34+
import { accordion, addressContainer } from "model/reservation-unit";
3535
import { textWithIcon } from "model/search";
3636

3737
const matchEvent = (): void => {
@@ -111,6 +111,12 @@ describe("Tilavaraus ui reservation unit page (single)", () => {
111111
it("contains default elements", () => {
112112
cy.get("h1").should("contain", "Pukinmäen nuorisotalon keittiö");
113113

114+
accordion("description").contains(
115+
"Sali sijaitsee nuorisotalon toisessa kerroksessa. Tilaan mahtuu 60 henkilöä.."
116+
);
117+
118+
accordion("equipment").contains("Tuoli FiKattila FiJoku muu Fi");
119+
114120
addressContainer().should("have.length", 2);
115121

116122
addressContainer(1).should("contain", "Säterintie 2 Fi");
@@ -437,6 +443,18 @@ describe("Tilavaraus ui reservation unit page (single)", () => {
437443
});
438444
});
439445

446+
describe("without equipment", () => {
447+
it("doesn't display equipment accordion", () => {
448+
cy.visit("/reservation-unit/single/800");
449+
450+
accordion("description").contains(
451+
"Sali sijaitsee nuorisotalon toisessa kerroksessa. Tilaan mahtuu 60 henkilöä.."
452+
);
453+
454+
accordion("equipment").should("not.exist");
455+
});
456+
});
457+
440458
describe("preview", () => {
441459
Cypress.config("defaultCommandTimeout", 20000);
442460

ui/cypress/integration/reservation-unit.ts

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { error404Body, error404Title } from "model/error";
2-
import { addressContainer } from "model/reservation-unit";
2+
import { accordion, addressContainer } from "model/reservation-unit";
33
import { textWithIcon } from "model/search";
44

55
describe("Tilavaraus ui reservation unit page (recurring)", () => {
@@ -12,6 +12,12 @@ describe("Tilavaraus ui reservation unit page (recurring)", () => {
1212
textWithIcon(2).contains("Nuorisopalvelut Fi");
1313
textWithIcon(3).contains("60 henkilöä");
1414

15+
accordion("description").contains(
16+
"Sali sijaitsee nuorisotalon toisessa kerroksessa. Tilaan mahtuu 60 henkilöä.."
17+
);
18+
19+
accordion("equipment").contains("Tuoli FiKattila FiJoku muu Fi");
20+
1521
addressContainer().should("have.length", 2);
1622

1723
addressContainer(1).should("contain", "Säterintie 2 Fi");
@@ -21,6 +27,18 @@ describe("Tilavaraus ui reservation unit page (recurring)", () => {
2127
addressContainer(1).should("contain", "HSL Reittiopas");
2228
});
2329

30+
describe("without equipment", () => {
31+
it("doesn't display equipment accordion", () => {
32+
cy.visit("/reservation-unit/800");
33+
34+
accordion("description").contains(
35+
"Sali sijaitsee nuorisotalon toisessa kerroksessa. Tilaan mahtuu 60 henkilöä.."
36+
);
37+
38+
accordion("equipment").should("not.exist");
39+
});
40+
});
41+
2442
describe("with publish times", () => {
2543
Cypress.config("defaultCommandTimeout", 20000);
2644

ui/cypress/model/reservation-unit.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1+
export function accordion(
2+
modifier: string
3+
): Cypress.Chainable<JQuery<HTMLElement>> {
4+
return cy.get(`[data-testid="reservation-unit__accordion--${modifier}"]`);
5+
}
6+
17
export function addressContainer(
28
order?: number
39
): Cypress.Chainable<JQuery<HTMLElement>> {

0 commit comments

Comments
 (0)