Skip to content

Commit 560fe76

Browse files
authored
Merge pull request #156 from MITLibraries/update-dependencies
Update dependencies and add instructions on how to confirm the app is working
2 parents 50fff3b + 0db572d commit 560fe76

File tree

2 files changed

+61
-37
lines changed

2 files changed

+61
-37
lines changed

Gemfile.lock

Lines changed: 32 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -96,10 +96,10 @@ GEM
9696
erubi (>= 1.0.0)
9797
rack (>= 0.9.0)
9898
rouge (>= 1.0.0)
99-
bigdecimal (3.1.6)
99+
bigdecimal (3.1.7)
100100
bindex (0.8.1)
101-
binding_of_caller (1.0.0)
102-
debug_inspector (>= 0.0.1)
101+
binding_of_caller (1.0.1)
102+
debug_inspector (>= 1.2.0)
103103
bootsnap (1.18.3)
104104
msgpack (~> 1.2)
105105
builder (3.2.4)
@@ -120,7 +120,7 @@ GEM
120120
rexml
121121
crass (1.0.6)
122122
date (3.3.4)
123-
debug (1.9.1)
123+
debug (1.9.2)
124124
irb (~> 1.10)
125125
reline (>= 0.3.8)
126126
debug_inspector (1.2.0)
@@ -130,8 +130,7 @@ GEM
130130
dotenv-rails (3.1.0)
131131
dotenv (= 3.1.0)
132132
railties (>= 6.1)
133-
drb (2.2.0)
134-
ruby2_keywords
133+
drb (2.2.1)
135134
erubi (1.12.0)
136135
ffi (1.16.3)
137136
ffi-compiler (1.0.1)
@@ -142,9 +141,9 @@ GEM
142141
terminal-table (>= 1.8)
143142
globalid (1.2.1)
144143
activesupport (>= 6.1)
145-
graphql (2.2.11)
144+
graphql (2.3.0)
146145
base64
147-
graphql-client (0.20.0)
146+
graphql-client (0.21.0)
148147
activesupport (>= 3.0)
149148
graphql (>= 1.13.0)
150149
hashdiff (1.1.0)
@@ -157,14 +156,14 @@ GEM
157156
http-cookie (1.0.5)
158157
domain_name (~> 0.5)
159158
http-form_data (2.3.0)
160-
i18n (1.14.1)
159+
i18n (1.14.4)
161160
concurrent-ruby (~> 1.0)
162161
importmap-rails (2.0.1)
163162
actionpack (>= 6.0.0)
164163
activesupport (>= 6.0.0)
165164
railties (>= 6.0.0)
166165
io-console (0.7.2)
167-
irb (1.11.2)
166+
irb (1.12.0)
168167
rdoc
169168
reline (>= 0.4.2)
170169
jbuilder (2.11.5)
@@ -186,7 +185,7 @@ GEM
186185
marcel (1.0.2)
187186
matrix (0.4.2)
188187
mini_mime (1.1.5)
189-
minitest (5.22.2)
188+
minitest (5.22.3)
190189
minitest-reporters (1.6.1)
191190
ansi
192191
builder
@@ -206,24 +205,24 @@ GEM
206205
net-smtp (0.4.0.1)
207206
net-protocol
208207
nio4r (2.7.0)
209-
nokogiri (1.16.2-arm64-darwin)
208+
nokogiri (1.16.3-arm64-darwin)
210209
racc (~> 1.4)
211-
nokogiri (1.16.2-x86_64-darwin)
210+
nokogiri (1.16.3-x86_64-darwin)
212211
racc (~> 1.4)
213-
nokogiri (1.16.2-x86_64-linux)
212+
nokogiri (1.16.3-x86_64-linux)
214213
racc (~> 1.4)
215214
parallel (1.24.0)
216215
parser (3.3.0.5)
217216
ast (~> 2.4.1)
218217
racc
219-
pg (1.5.5)
218+
pg (1.5.6)
220219
psych (5.1.2)
221220
stringio
222221
public_suffix (5.0.4)
223222
puma (6.4.2)
224223
nio4r (~> 2.0)
225224
racc (1.7.3)
226-
rack (3.0.9.1)
225+
rack (3.0.10)
227226
rack-session (2.0.0)
228227
rack (>= 3.0.0)
229228
rack-test (2.1.0)
@@ -262,31 +261,31 @@ GEM
262261
zeitwerk (~> 2.6)
263262
rainbow (3.1.1)
264263
rake (13.1.0)
265-
rdoc (6.6.2)
264+
rdoc (6.6.3.1)
266265
psych (>= 4.0.0)
267266
regexp_parser (2.9.0)
268-
reline (0.4.3)
267+
reline (0.5.0)
269268
io-console (~> 0.5)
270269
rexml (3.2.6)
271270
rouge (4.2.0)
272-
rubocop (1.60.2)
271+
rubocop (1.62.1)
273272
json (~> 2.3)
274273
language_server-protocol (>= 3.17.0)
275274
parallel (~> 1.10)
276275
parser (>= 3.3.0.2)
277276
rainbow (>= 2.2.2, < 4.0)
278277
regexp_parser (>= 1.8, < 3.0)
279278
rexml (>= 3.2.5, < 4.0)
280-
rubocop-ast (>= 1.30.0, < 2.0)
279+
rubocop-ast (>= 1.31.1, < 2.0)
281280
ruby-progressbar (~> 1.7)
282281
unicode-display_width (>= 2.4.0, < 3.0)
283-
rubocop-ast (1.30.0)
284-
parser (>= 3.2.1.0)
285-
rubocop-rails (2.23.1)
282+
rubocop-ast (1.31.2)
283+
parser (>= 3.3.0.4)
284+
rubocop-rails (2.24.1)
286285
activesupport (>= 4.2.0)
287286
rack (>= 1.1)
288287
rubocop (>= 1.33.0, < 2.0)
289-
rubocop-ast (>= 1.30.0, < 2.0)
288+
rubocop-ast (>= 1.31.1, < 2.0)
290289
ruby-progressbar (1.13.0)
291290
ruby2_keywords (0.0.5)
292291
rubyzip (2.3.2)
@@ -298,15 +297,16 @@ GEM
298297
sprockets (> 3.0)
299298
sprockets-rails
300299
tilt
301-
selenium-webdriver (4.18.1)
300+
selenium-webdriver (4.19.0)
302301
base64 (~> 0.2)
303302
rexml (~> 3.2, >= 3.2.5)
304303
rubyzip (>= 1.2.2, < 3.0)
305304
websocket (~> 1.0)
306-
sentry-rails (5.16.1)
305+
sentry-rails (5.17.1)
307306
railties (>= 5.0)
308-
sentry-ruby (~> 5.16.1)
309-
sentry-ruby (5.16.1)
307+
sentry-ruby (~> 5.17.1)
308+
sentry-ruby (5.17.1)
309+
bigdecimal
310310
concurrent-ruby (~> 1.0, >= 1.0.2)
311311
simplecov (0.22.0)
312312
docile (~> 1.1)
@@ -322,9 +322,9 @@ GEM
322322
actionpack (>= 5.2)
323323
activesupport (>= 5.2)
324324
sprockets (>= 3.0.0)
325-
sqlite3 (1.7.2-arm64-darwin)
326-
sqlite3 (1.7.2-x86_64-darwin)
327-
sqlite3 (1.7.2-x86_64-linux)
325+
sqlite3 (1.7.3-arm64-darwin)
326+
sqlite3 (1.7.3-x86_64-darwin)
327+
sqlite3 (1.7.3-x86_64-linux)
328328
stimulus-rails (1.3.3)
329329
railties (>= 6.0.0)
330330
stringio (3.1.0)
@@ -333,7 +333,7 @@ GEM
333333
thor (1.3.1)
334334
tilt (2.3.0)
335335
timeout (0.4.1)
336-
turbo-rails (2.0.4)
336+
turbo-rails (2.0.5)
337337
actionpack (>= 6.0.0)
338338
activejob (>= 6.0.0)
339339
railties (>= 6.0.0)

README.md

Lines changed: 29 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,12 @@
44

55
A discovery interface backed by [the TIMDEX API](https://github.com/MITLibraries/timdex).
66

7+
## Architecture decision records (ADRs)
8+
9+
This repository contains ADRs in the docs/architecture-decisions directory.
10+
11+
adr-tools should allow easy creation of additional records with a standardized template.
12+
713
## TIMDEX UI Flow Diagram
814

915
Note: this is a logical flow diagram and not a direct representation of object relationships. It is also a guide, not
@@ -43,11 +49,29 @@ change as part of the work.
4349
UserInputAdvanced("User Input Advanced 🦸‍♀️")
4450
```
4551

46-
## Required Environment Variables
52+
## Developer notes
53+
54+
### Confirming functionality after dependency updates
55+
56+
This application has test coverage >95%, so running the test suite is likely sufficient to confirm
57+
functionality in most cases. Some click testing is also useful, particularly if there have been
58+
updates to `graphql-ruby` or `graphql-client`:
59+
60+
1. Confirm that basic and advanced searches do not error and return results.
61+
2. Confirm that geospatial searches (bounding box and distance) do not error and return results. (Note that this
62+
requires testing against an index that contains geospatial records.)
63+
3. Confirm that filters from multiple categories can be applied and removed, both on the sidebar
64+
and the panel beneath the search form.
65+
66+
If the `flipflop` gem has been updated, check that the `:gdt` feature is working by ensuring that
67+
UI elements specific to GDT (e.g., geospatial search fields or the 'Ask GIS' link) appear with the
68+
feature flag enabled, and do not when it is disabled.
69+
70+
### Required Environment Variables
4771

4872
- `TIMDEX_GRAPHQL`: Set this to the URL of the GraphQL endpoint. There is no default value in the application.
4973

50-
## Optional Environment Variables
74+
### Optional Environment Variables
5175

5276
- `ABOUT_APP`: If populated, an 'about' partial containing the contents of this variable will render on
5377
`basic_search#index`.
@@ -73,18 +97,18 @@ may have unexpected consequences if applied to other TIMDEX UI apps.
7397
- `TIMDEX_SOURCES`: Comma-separated list of sources to display in the advanced-search source selection element. This
7498
overrides the default which is set in ApplicationHelper.
7599

76-
### Test Environment-only Variables
100+
#### Test Environment-only Variables
77101

78102
- `SPEC_REPORTER`: Optional variable. If set, enables spec reporter style output from tests rather than minimal output.
79103
- `TIMDEX_HOST`: Test Env only. Used to ensure the VCR cassettes can properly scrub specific host data to make sure we get the same cassettes regardless of which host was used to generate the cassettes. This should be set to the host name that matches `TIMDEX_GRAPHQL`. Ex: If `TIMDEX_GRAPHQL` is `https://www.example.com/graphql` then `TIMDEX_HOST` should be `www.example.com`.
80104

81-
## Generating VCR Cassettes
105+
### Generating VCR Cassettes
82106

83107
When generating new cassettes for timdex-ui, update `.env.test` to have appropriate values for your test for `TIMDEX_GRAPHQL` and `TIMDEX_HOST`. This will allow the cassettes to be generated from any TIMDEX source with the data you need, but be sure to set them back to the original values after the cassette are generated. When the values are not set to the "fake" values we normally store, many tests will fail due to how the cassettes re-write values to normalize what we store.
84108

85109
`.env.test` should be commited to the repository, but should not include real values for a TIMDEX source even though they are not secrets. We want to use fake values to allow us to normalize our cassettes without forcing us to always generate them from a single TIMDEX source.
86110

87-
## Updating GraphQL Schema
111+
### Updating GraphQL Schema
88112

89113
The schema for the GraphQL endpoint can be found at `/config/schema/schema.json`. This schema is used by the graphql-client gem, and so must be kept in sync with the Timdex GraphQL API. Updating the schema can be accomplished via the following command in the console:
90114

0 commit comments

Comments
 (0)