luckyframework / luckyframework/lucky_flow

Issue running specs on fresh app

Open
#93 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

clarify api help wanted improve error experience
Dominant language
Crystal
Stars
55
Forks
9
PR merge metrics
No merged PRs in 30d

Description

I installed a fresh Lucky 0.23 app and tried to run specs only to get this error:

> session not created: session not created: This version of ChromeDriver only supports Chrome version 83

(assuming I was a brand new dev to Lucky...) I first think "What version of chromedriver do I have installed?". It was version 80. I ran `brew upgrade chromedriver`, checked the version `chromedriver -v` and I got 85. Ran `crystal spec`, and it failed with the same error. I then checked my version of chrome, it updated and showed version 85. Still unable to run the specs....

I dug in to LuckyFlow to find [this line](https://github.com/luckyframework/lucky_flow/blob/master/src/lucky_flow/server.cr#L95) where `LuckyFlow.settings.chromedriver_path` was `nil`. I didn't know I had to set this path (because I'm new). But I saw that `Webdrivers::Chromedriver.install` pointed to `~/.webdrivers/chromedriver`. It happened that this version was 83. I had to uninstall this version since it wasn't managed by my package manager, and also uninstall my local chromedriver. Then when I ran `crystal spec`, I see it installed the correct version and specs passed.

Maybe there's a way we can catch that error, and present a nicer error to say `delete this cache directory`, or something?

/cc. @matthewmcgarvey

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start at src/lucky_flow/server.cr line 95 and inspect how LuckyFlow.settings.chromedriver_path and Webdrivers::Chromedriver.install select the driver. Reproduce the failure with crystal spec and a stale ~/.webdrivers/chromedriver cache. Done means the version mismatch produces a clearer error explaining the relevant cache or setup action.

Written by the indexing model from the issue text.

Assessment

Tech stack
crystal
Domain
testing, tooling
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.