Commit Graph

182 Commits

Author SHA1 Message Date
Tim Griesser
8eaebc3d16 fix: build-prod-ui deps before build-prod packages 2021-11-16 10:23:02 -05:00
Tim Griesser
6a9f5a1a41 Merge branch 'develop' into unified-desktop-gui
* develop: (40 commits)
  fix(driver): Sticky elements within a fixed container will not prevent an element from being scrolled to (#18441)
  chore: make `create` function on server.ts obsolete (#18615)
  docs: Add instructions to squash commits to develop in Contributing (#18728)
  fix(@cypress/react): throw if using Next.js swc-loader without nodeVersion=system (#18686)
  refactor: remove Ramda (#18723)
  chore: Increase paralleled machines for desktop-gui tests (#18725)
  chore: Update Chrome (stable) to 95.0.4638.69 (#18696)
  chore: release @cypress/vue-v3.0.4
  chore: release @cypress/react-v5.10.2
  chore: release @cypress/schematic-v1.5.3
  fix: remove outdated registry link (#18710)
  chore: release @cypress/schematic-v1.5.2
  chore: release create-cypress-tests-v1.1.3
  chore: Update Chrome (beta) to 96.0.4664.27 (#18676)
  chore(tests): Remove flaky assertion that relies on png how compression (#18668)
  fix: make sure to go back to no-specs when delete spec file (#17760)
  fix: Next.JS 12 components testing failing with ` TypeError: Cannot read property 'traceChild' of undefined` (#18648)
  Backport .gitignore from unified-desktop-gui
  chore(docs): add 'Upgrading Electron' instructions (#18594)
  release 8.7.0 [skip ci]
  ...
2021-11-02 21:35:26 -04:00
Tim Griesser
c0d781d28f refactor: remove Ramda (#18723) 2021-11-01 13:37:33 -04:00
Lachlan Miller
0501452fb9 fix: support using create-cypress-tests as part of build process (#18714)
Co-authored-by: Tim Griesser <tgriesser10@gmail.com>
2021-11-01 12:19:22 -04:00
Tim Griesser
4e25061e8e feat: prerendering data for app load (#18704)
* feat: prerendering data for app load

* Fix deps

* Fix create-cypress-tests in build
2021-11-01 11:21:26 +10:00
Lachlan Miller
5754b2c480 merge in develop 2021-10-20 18:36:26 +10:00
Jessica Sachs
a045e4f59a chore: move server e2e tests to system-tests (#16354)
Co-authored-by: Brian Mann <brian.mann86@gmail.com>
Co-authored-by: Zach Bloomquist <git@chary.us>
Co-authored-by: Zach Bloomquist <github@chary.us>
2021-10-18 19:53:14 +00:00
Lachlan Miller
c9a7b4de76 merge in develop 2021-09-23 18:44:53 +10:00
Tim Griesser
863e3680bb fix: GH env variable for test other projects (#18147)
* use GH_TOKEN rather than creds var
2021-09-17 15:39:12 -04:00
Lachlan Miller
0fa4a7376f merge in develop and resolve conflicts 2021-09-08 16:43:35 +10:00
Chris Breiding
55ef4c3a11 chore: Prevent unnecessary files from being included in the binary (#17957) 2021-09-06 21:00:30 -04:00
Lachlan Miller
7e6ea26b6f allow larger artifacts 2021-08-25 11:16:50 +10:00
Tim Griesser
16516b74b1 fix: copy yarn.lock to packages for deterministic builds (#17218) 2021-07-06 17:51:33 -04:00
Tim Griesser
ca44464521 fix: revert #17132 use hoisted yarn install in build binary (#17215) 2021-07-06 16:30:33 -04:00
Tim Griesser
b2b2a97132 refactor: additional script cleanups 2021-07-06 09:58:29 -04:00
Tim Griesser
1e005644ae refactor: update binary script files to be more procedural 2021-07-06 09:58:29 -04:00
Tim Griesser
00eca92afa refactor: rename binary script files js -> ts 2021-07-06 09:58:28 -04:00
Chris Breiding
97e7a524d4 chore: Ensure binaries are downloadable after release (#16735) 2021-06-02 10:08:11 -04:00
Zach Bloomquist
f6a5d1ea2e feat: change cy.intercept override behavior (#14543) 2021-03-26 18:22:18 +00:00
Zach Bloomquist
e30fe0d387 Merge remote-tracking branch 'origin/develop' into 7.0-release 2021-03-10 13:54:42 -05:00
Jessica Sachs
e69b996891 feat: Runner-CT UI Improvements (#15327)
* feat: initial search input component

* Ugly LeftNav control

* chore: fixing the broken relative url specs

* feat: cleaning up the left nav styles and adding a more interactive spec

* chore: rebase

* wip: nav bar external link fix

* wip: active index

* wip: active index

* wip: more css modules

* wip: dark mode/light mode support devtools

* spwip: split left nav

* wip: runner-ui-changes

* wip: box shadows, borders, and more

* fix: types

* chore: extract component

* chore: extract component for readability

* chore: add checks for width on pane

* chore: refactor to make it more easier to understand what is rendered in panes

* chore: move things around

* chore: move things around

* chore: fix style

* chore: fix shortcuts

* tests: fix a test

* fix: fix screenshots feature

* chore: add placeholder

* chore: rebase

* fix: casing

* chore: build

* chore: old file

* chore: update

* chore: update name

* wip: fixing bugs in UI

* chore: improve resize logic

* chore: improve resize logic

* chore: remove unused code

* chore: styling

* chore: fix screenshotting

* chore: style

* chore: fix lint

* chore: bump bin size

* chore: revert changes in runnables

* fix: remove padding during screenshot

* chore: rebase and reauthor commit

* fix: correctly open spec list when focusing

Co-authored-by: Lachlan Miller <lachlan.miller.1990@outlook.com>
2021-03-09 16:16:43 +10:00
Chris Breiding
77b922472c fix: Improve uncaught error handling (#14826)
Co-authored-by: Chris Breiding <chrisbreiding@gmail.com>
Co-authored-by: Mateusz Burzyński <mateuszburzynski@gmail.com>
2021-03-01 09:23:14 -05:00
Brian Mann
af26fbebe6 feat: component testing (#14479)
Co-authored-by: Jessica Sachs <jess@jessicasachs.io>
Co-authored-by: Barthélémy Ledoux <bart@cypress.io>
Co-authored-by: Lachlan Miller <lachlan.miller.1990@outlook.com>
Co-authored-by: Zach Bloomquist <github@chary.us>
Co-authored-by: Dmitriy Kovalenko <dmtr.kovalenko@outlook.com>
Co-authored-by: ElevateBart <ledouxb@gmail.com>
Co-authored-by: Ben Kucera <14625260+Bkucera@users.noreply.github.com>
2021-02-04 15:45:16 -05:00
Zach Bloomquist
0abb5efe90 build: use semantic commits to get next version (#14851) 2021-02-04 18:30:27 +00:00
Zach Bloomquist
9c51428382 chore(docs): remove binary-build-linux references 2021-01-11 16:28:54 -05:00
Jennifer Shehane
2b67505d09 Merge pull request #14425 from cypress-io/TR-561-decaffeinate
test: decaffeinate fixtures/projects/e2e (files s-t)
2021-01-08 20:33:55 +06:30
Jennifer Shehane
9ab9995a2b cleanup JS + update snapshots
Cleanup js + update snapshots

Cleanup JS + update snapshots

Cleanup JS + update snapshots
2021-01-08 09:56:29 +06:30
Barthélémy Ledoux
dd559d9862 feat(component-testing): changes to the driver and reporter preparing for runner-ct (#14434)
* chore: update driver with component testing

* feat: bring ct changes in reporter

* test: update script utils test

* fix: type issue

* test: add test for new ct behavior in driver

runScript can now use promises instead of files.
Thi test this new behavior

* tests(ct): tests for the reporter runable store

* fix: remove changes on event handling in driver

* build: augment zip size to avoid zip errors

* test: add renderin tests for reporter multispec

* test: better matcher for runnableHistory

Co-authored-by: Jessica Sachs <jess@jessicasachs.io>

* test: make the runscripts eval tests clearer

* refactor(reporter): main interface instead of type

* fix(reporter): runInAction when specRunId changes

* refactor(driver): remove restartRunner function

Co-authored-by: Jessica Sachs <jess@jessicasachs.io>
2021-01-07 19:30:52 -05:00
Zach Panzarino
3eb3bfa487 build: properly use local npm packages for development and binary build (#14182) 2021-01-05 00:34:13 -05:00
Gleb Bahmutov
84d1afd27d feat: print bundled Node and Electron versions in cypress version (#9183) 2020-11-16 13:17:24 -05:00
Zach Bloomquist
fe4e11ec6e feat(cli): install pre-release binaries by computing binary URL from NPM URL (#8483) 2020-09-08 17:44:37 -04:00
Zach Bloomquist
c37896089b feat(net-stubbing): experimental full network mocking support (#4176) 2020-08-31 09:41:47 -04:00
Zach Bloomquist
5a3e7e6143 fix: add patches to package files (#8272) 2020-08-13 14:39:30 -04:00
Brian Mann
c72538d189 Fix lodash dupe dep (#7954)
* blow away yarn.lock

* bump lodash to 4.17.19

* reduce binary size again

* bump @types/node to correct version, fix types

* fix react + react-dom types

* add clean command for .ts conversion to .js files

* fix flaky test
2020-07-11 16:34:23 -04:00
Jennifer Shehane
4b4628ea7a Update regex for matching Cypress version in tests to replace more version types (#7927)
* Update regex for matching Cypress version to replace more version types

* Increase max zip size from 190 to 200
2020-07-09 19:51:57 +06:30
Zach Bloomquist
0e632635cd chore: rm non-test-related coffeescript references 2020-06-10 10:49:31 -04:00
renovate[bot]
fedd30cb36 fix(deps): update dependency jimp to version 0.13.0 🌟 (#7618)
* fix(deps): update jimp to 0.13.0 🌟

* Bump max linux filesize for binary

Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
2020-06-09 15:26:17 +06:30
Zach Bloomquist
1875027073 chore: decaffeinate server tests, scripts, other files (#7591) 2020-06-05 15:12:53 -04:00
Gleb Bahmutov
d69c1d184f do not follow symlinks when copying files during build (#7156) 2020-04-27 16:09:51 -04:00
Dmitriy Kovalenko
379a9e7008 feat: improve component based tests approach (#5923)
- new mode that mounts the spec iframe instead of application iframe
2020-04-26 16:25:24 -04:00
Gleb Bahmutov
54586f9e4a rename built folder on Windows (#6860) 2020-03-26 13:30:38 -04:00
Gleb Bahmutov
abf4d85869 switch to electron-builder to code sign and notarize Cypress ap… (#6013)
* electron@7.x

* node12.8.1-chrome78-ff70

* Revert "node12.8.1-chrome78-ff70" for now

This reverts commit db2d521994.

* update sendCommand to log on all sendcommands

* promisification in 6.x

* Revert "Revert "node12.8.1-chrome78-ff70" for now"

This reverts commit 57fe764098.

* fix sendcommand

* fix cdp in electron

* fix desktop-gui test

* skip tests that will be fixed by #4973

* bump MAX_ALLOWED_FILE_SIZE :/

* update electron browser spec

* make new dialog code null-proof

* add failing e2e test for issue 5475

* bump electron packager

* add e2e snapshot

* update deprecated electron getters/setters

https://github.com/electron/electron/blob/7-1-x/docs/api/modernization/property-updates.md

* build and test on Mac

* use electron-builder 20.41.0

that adds an option to use hardened Mac OS, which is necessary
for code notarization later.

See https://github.com/electron-userland/electron-builder/releases/tag/v20.41.0
and https://github.com/electron-userland/electron-builder/pull/3858

* electron-builder and pass hardenedRuntime: true

* uncomment build

* upload built binary on mac

* back to 20.41.0, trying after sign hook without success

* use current electron-builder alias instead of build

* retry smoke test on first failure

* testing

* trying to notarize signed app (that does not have node_modules yet)

* env variable names

* copy node_modules ourselves

* build and bundle binary on mac on circle, inject new context

* enable build steps before electron build

* increase mac build timeout

* update build folder on mac

* uncomment actual electron build command

* set linux target to zip

* set zip as target for all platforms

* updated steps

* put notarization hook back

* tweaks for icons

* remove dist electron before code sign

* icons per platform

* make node_modules copy path platform-specific

* fix linux build unpacked folder

* build mac

* fix lint

* test new mac binary against kitchensink

* working on Linux build

* try building entire thing on Linux

* removing correct electron dist folder

* increase zip size limit for now

* add folder rename on Linux from linux-unpacked to Cypress

* print file sizes before zipping

* move linux-unpacked to build dir function

* try deleting second electron file, but code signing probably would not work

* test windows build [build binary]

* ignore tsc errors

* windows build path

* windows [build binary]

* update windows build folder

* increase binary build timeout on Mac

* no need to pass our dist folder

* adding explicit list of additional binaries to code sign on mac

* yarn lock

* uncomment necessary build steps

* electron dir for Linux

* yarn lock again

* back to execa v3

* use execa v4 in packages launcher

* yarn lock again and again

* updated tests that use execa

* print build folder

* add executable name on Linux

* get rid of execa.shell in build scripts

* remove old and commented out code

* need to test building binary on Windows

* throw error from after sign hook if fails

* use execa to zip

* yarn lock

* fix after merge variable

* update test

* add nohoist ffmpeg installer

* patch

* yarn types pass

* yarn lock has binary

Co-authored-by: Zach Bloomquist <github@chary.us>
Co-authored-by: Brian Mann <brian.mann86@gmail.com>
2020-03-24 21:34:52 -04:00
Zach Bloomquist
d810950379 Switch request, request-promise to @cypress/ forks (#6777) 2020-03-19 11:48:24 +06:30
Gleb Bahmutov
ffd4331aa5 Support experimental features (#6265)
* add packages/server experiments

* show experiments in desktop GUI

* add intro experiments text

* conditional message

* add experiments record to start of the headless run

* keep experiments in the config, remove duplicate logic

* small tweaks

* remove experimentalComponentTesting for now, separate PR

* rearrange settings spec into sections per panel

* do not crash if there are no experiments

* return component testing experiment

* work on styling of experiments panel + adding basic tests

* update settings spec text

* add unit tests for experimental features in cypress run output

* Add styling for 'non-enabled' status sign.

* add more experiments and key whitelist in experiments GUI

* add message when there are no experiments

* fix coffeelint

* fix merge in settings spec

* trailing whitespace

* make experiments info all live in one place

* add ts lint exception

* update unit test

* update run spec

* do not show experiments panel at all without experiments

* add more comments

* Update style of ON/OFF status for experimental features.

* remove empty messaging from experiments panel (since panel is no longer shown when empty)

* remove check for 'isEmpty' when showing list

* update lock file

Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
2020-03-16 21:10:08 +06:30
Jennifer Shehane
2ba53f6837 Better handle reserved key CYPRESS_ENV being set by users to va… (#6437)
* Add warning when setting CYPRESS_ENV to non-production value

* Add warning and update error when setting CYPRESS_ENV in config to non-production value

* Update config test/to throw

* we want warning, not throw

* Rename env var to CYPRESS_INTERNAL_ENV + fix warning to actually warn when staging

* update cli snapshot to include new 'info' command

* yarn.lock

* removed the warning from config, is overboard on our own tests 😓

* cleanup from review

Co-authored-by: Gleb Bahmutov <gleb.bahmutov@gmail.com>
2020-03-06 16:53:48 +06:30
Zach Bloomquist
e2ea5bf663 Fix patch-package (#6583)
* fix patch-package

- don't hoist dependencies that are patched, this way we can be assured the path is always correct
- put all patches in root postinstall so postinstall-postinstall is guaranteed to work

* wip

* Revert "fix patch-package"

This reverts commit 5583f21478.

* use per package patches

* don't ignor engines or silence

* try: make sinon patch devonly

* fix socketspec

* run full ci on this branch

* bump xcode tools to bump mac node version

* also run appveyor

* Revert "run full ci on this branch"

This reverts commit c3e52d09ec.

* Revert "also run appveyor"

This reverts commit bfe7b0499a.
2020-02-28 12:17:54 -05:00
Ben Kucera
f77ec01c18 chore:fix ui-components dependencies, web-config deps for yarn (#6534)
- add needed deps in `ui-components` package
- upgrade `@cypress/webpack-preprocessor`
- refactor some eslint code, remove unused eslint scripts
- rename `build-js` scripts to `build-prod` since they'll only need to run when building for prod / checking for tsc errors
2020-02-26 20:21:23 +00:00
renovate[bot]
eab801ae3f chore(deps): Update dependency eslint to version 6.8.0 🌟 (#6509)
* chore(deps): Update eslint to 6.8.0 🌟

* fix missing dangling commas for linter

* fix missing dangling commas for linter

* more lint fixes

* yarn lock

Co-authored-by: WhiteSource Renovate <renovatebot@gmail.com>
Co-authored-by: Jennifer Shehane <shehane.jennifer@gmail.com>
2020-02-25 00:09:47 +06:30
Andrew Smith
0a6a2abcec Replace npm with yarn (#5555)
* enable using yarn

* enable lerna and yarn workspaces

No longer can reliably access node_modules via thei node_modules directory; yarn may optimize it via hoisting it up. This meant updating JS tasks that were copying files directly from node_modules directories. In these cases, pulled in a new package to resolve these correctly.

SCSS files remain impacted, but cannot easily import via JS. These paths have been modified, but it feels dangerous and incorrect to reach into a node_module to grab files like this.

Many prebuild steps were removed. I **think** the purpose of `check-deps-pre` is no longer needed, but need to confirm this.

* enabling test-unit script

removal of pretest-unit due to check-deps-pre

* removal of all  `check-deps` and `check-deps-pre`

I do not think these are needed anymore

* remove npm run all

Replaced by `lerna run` and `lerna run --scope`

* use yarn in circle CI

appveyor to soon follow

* yarn in appveyor

* remove need for bin-upplaces using bin-up have a dev dependency on some package; mostly mocha. This mocha package will be optimized by yarn workspaces by hoisting it into the root; which is effectively what bin-up usage was mimicing.

* replace npm run with yarn in package files

* replace explict paths to internal packages with yarn bin

* remove unecessary link packages script and references

* properly require package for mocha

* removing yarn test in this package as it was just a proxy for test-*

* yarn test in root now reflects what is run in circle ci

* relax yarn version requirement for circle ci

* @packages/cli is really just cypress

also run test in parallel via `yarn test`; it runs test in all 10 packages

* ensure postinstall is called before prebuild

yarn does not call postinstall when nothing has installed; such is the case when everything has been cached

* vscode config uses yarn

* cannot rely on which node_modules dir a package is in

find the right node_module dir via `resolve-pkg`

* further relax yarn version for OSX build in circle ci

* resolve failing test

Regarding direct access to node_modules

* node version in mac build not sufficient

ignoring check of node/yarn versions when installing

* preinstall script does not exist

I **think** the reason to not install packages' modules (the reason for `--ignore-scripts` may be irrelevant with yarn workspaces managing the packages)

* upgrade mocha that was using --file

`--file` was introduce in >=5

* scope test runs to correct packages

* explictly close connections; otherwise script hangs after tests run

* refactor so npm and npx commads can be created

npx is used to utlize lerna for running across all packages sans cli

* properly resolve socket.io-client node_module

We cannot reach directly into node_modules to grab the socket.io-client file. Furthermore, running it locally will require resolving from a different cwd, the repo root, as opposed to the package's dist directory.

The existence of the file deterimes whether we are building the binary or running locally.

* remove unnecessary arg in vscode debug config

enable debugging in @packages/server to troubleshoot failing test

* another npm command found to be changed to yarn

* properly print colors to terminal

`lerna run` does not appear to print colors to the terminal properly. Changed to leverage `lerna exec`

See https://github.com/lerna/lerna/issues/1168

* add missing test scripts to packages that have partially have them

'test', 'test-unit', 'test-watch', and 'test-debug'

This makes running them from the root easier and enables debugging via IDE on more packages

* properly patch package in yarn workspaces

* another package needing to postinstall

* use existing script over explicit lerna exec

* patches must be copied to dist

* return to building on postinstall

* do not hoist driver's packagesThere are too many places we need driver's packages to not be hoisted when testing. We have *.html files in test with script tags srcing node_modules.

* wait-on is used in circle-ci and needs to be a root dep

No longer hoisted by `@packages/driver`. This previously worked only because it was hoisted. Adding it to root properly.

* update documentation based on new ergonomics

* launcher has unit tests that should be runnable via top level task

* more concise way to run build within cypress scope

* fix for unit test that never seemed to work

`getPathToExample` is really `getPathToExamples`

* bust cache based on yarn.lock changing

* define intra-dependencies among packages

Due to the way we build the binary, all are considered dev dependencies.

* address `jquery.scrollto` mismatched jquery version

Tell yarn to explicitly resolve `jquery@3.1.1` for any dependencies and sub-dependencies. The root issue is that `jquery.scrollto` package specifies jquery as a dependency instead of a peer dependency (which is correct). Its jquery version is set to the `>=1.8` which then resolves to 3.4.1. In doing so, it will patch its jquery instead of ours; meaning that `$.scrollTo` is not defined.

* add/remove deps from renovate

- bin-up is gone in favor of yarn workspaces and lerna from root
- check-deps is gone in favor of `yarn check --integrity`
- lerna added

* few misc yarn lock updates

* hope that this may speed up build binary

installing several of the same dep in >1 package will likely be sped up using yarn due to its machine-wide caching.

* yarn pack prefix version with a `v`

* auto-run `yarn install` when deps become out of date

When switching to a branch with a different set of required deps, running any of the main top level tasks (as seen in the `./CONTRIBUTING.md` guide) will check for deps changes via `yarn check --integrity` and run `yarn` in root if deps are out of sync.

* add clean top level task, remove prebuild

install => build => prebuild => check => install === no good

* address code review to undo formatting changes

* favor default imports over deconstructing imports

* favor @package resolution; pr feedback

* include a specific revision

for some reason, it cannot resolve the original SHA `29dafed297142d3b8a9d8a01842cbdf249a98b72`

using the next closes SHA

* properly cache yarn packagesfollowed guide: https://circleci.com/docs/2.0/yarn/

* lower barrier for contributors to get started

relax node version to be 12.0.0 or higher; will use node version found in `.node-version` in CI

* updates required after merging latest development

was getting type errors when building. recreating the `yarn.lock` file seemed to resolve the issue.

* hidden dep on a specific type version in server

made dep explicit and now it can build.

* update request to patched version

non-breaking changes to request was updated in server, but not everywhere else. It appears that transitive deps were using the 2.88.0 request version instead of the updated one for the server package.

* missing commit from previous commit/merge

* do not force a higher version of yarn than the default on circleci

* exclude e2e.js helper from stop-only command

* trying to bust node_modules cache.https://github.com/yarnpkg/yarn/issues/6412#issuecomment-537787740

* incorrect quotation tick placement

* fix: properly postinstall parse-domain

Do not explicitly script the shell invocation of a dependency's postinstall (parse-domain). The dependency's node_modules may not be where the package thinks they are and are not properly resolved.

It appears that postinstall will automatically be called when installing with yarn.

* run all CI stages

* fix win-appveyor-build.js

* Update CONTRIBUTING.md

Co-Authored-By: Zach Bloomquist <github@chary.us>

* Update CONTRIBUTING.md

Co-Authored-By: Zach Bloomquist <github@chary.us>

* Update CONTRIBUTING.md

Co-Authored-By: Zach Bloomquist <github@chary.us>

* Server package watching a specific test works correctly.

* PR feedback

* Correctly use yarn to pack (to get package size)

* correct size calculation

`yarn pack` does not output the file name like `npm pack` does. Correct this by explictly setting the filename.

* PR feedback

* PR feedback

* update readmes and testing commands from them

* do not include this in default build

* yarn is now installed by default

https://github.com/appveyor/ci/issues/1852

* do not include server in `yarn` auto build

* a few more npm references changed to yarn

* Revert "run all CI stages"

This reverts commit 9256aed99f.

* Update circle.yml

Co-Authored-By: Zach Bloomquist <github@chary.us>

Co-authored-by: Zach Bloomquist <github@chary.us>
2020-02-11 12:40:07 +06:30
Chris Breiding
d76123b3d9 Add Firefox support (#1359)
Co-authored-by: Ben Kucera <14625260+Bkucera@users.noreply.github.com>
Co-authored-by: Gleb Bahmutov <gleb.bahmutov@gmail.com>
Co-authored-by: Brian Mann <brian.mann86@gmail.com>
Co-authored-by: Zach Bloomquist <github@chary.us>
Co-authored-by: Jennifer Shehane <shehane.jennifer@gmail.com>
2020-02-06 10:52:13 -05:00