Fill variable text with JS directly to speed up
It's too slow to use `set(value)`, often timing out. Filling with JS is much faster for longer text, especially when the key size is larger than 8192. Before this patch: ``` Top 3 slowest examples (256.83 seconds, 89.4% of total time): cloning code using a deploy key user sets up a deploy key with QA::Runtime::Key::RSA(8192) to clone code using pipelines 161.26 seconds ./qa/specs/features/project/deploy_key_clone_spec.rb:42 cloning code using a deploy key user sets up a deploy key with QA::Runtime::Key::ECDSA(521) to clone code using pipelines 47.79 seconds ./qa/specs/features/project/deploy_key_clone_spec.rb:42 cloning code using a deploy key user sets up a deploy key with QA::Runtime::Key::ED25519() to clone code using pipelines 47.79 seconds ./qa/specs/features/project/deploy_key_clone_spec.rb:42 ``` Note that 161.26 was timed out. So it would actually take longer if it could ever complete. After patch: ``` Top 3 slowest examples (166.72 seconds, 83.8% of total time): cloning code using a deploy key user sets up a deploy key with QA::Runtime::Key::RSA(8192) to clone code using pipelines 83.66 seconds ./qa/specs/features/project/deploy_key_clone_spec.rb:42 cloning code using a deploy key user sets up a deploy key with QA::Runtime::Key::ECDSA(521) to clone code using pipelines 42.78 seconds ./qa/specs/features/project/deploy_key_clone_spec.rb:42 cloning code using a deploy key user sets up a deploy key with QA::Runtime::Key::ED25519() to clone code using pipelines 40.27 seconds ./qa/specs/features/project/deploy_key_clone_spec.rb:42 ``` Not that faster for smaller keys, but it's much faster for RSA 8192 (2 times faster). This was inspired from: https://github.com/teamcapybara/capybara/blob/679548cea10773d45e32808f4d964377cfe5e892/lib/capybara/selenium/node.rb#L217 Where it's clearing the field by filling an empty string. Here we do the same for the exact value we want to fill.
Showing
Please register or sign in to comment