Skip to content
master
Switch branches/tags
Go to file
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
lib
 
 
rel
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

Hex.pm CircleCI

TestSelector

A set of Elixir and Hound helpers to set/get test selectors to/from elements in a Phoenix app (when Mix.env == :test). These selectors are hashed (scoped to the view module they are used in) for accurate selection and "leakage" prevention. See our Wiki for examples.

Why? Because we prefer reserving classes for styling, and id's have limitations because they have to be unique.

Dependencies

Installation

def deps do
  [{:test_selector, "~> 0.3.1"}]
end

Use TestSelector.HTML.Helpers to your web.ex.

  • In phoenix 1.2.0 at web/web.ex
  • In newer Phoenix versions lib/your_project/web/web.ex

Add somewhere along:

  def view(opts \\ []) do
    quote do
      ...
      use Phoenix.HTML

      use TestSelector.HTML.Helpers
      ...
    end
  end

Testing with Floki

In the tests import the TestSelector.Test.HoundHelpers :

defmodule Project.Web.MyTest do
  ...
  use Hound.Helpers

  import TestSelector.Test.FlokiHelpers
  ...
end

Testing with Hound

In the tests import the TestSelector.Test.HoundHelpers

defmodule Project.Web.MyTest do
  ...
  use Hound.Helpers

  import TestSelector.Test.HoundHelpers
  ...
end

Tests

To run tests you need to install PhantomJS.

brew install phantomjs

Run the webdriver:

phantomjs -w

Run the tests:

mix test

About

Elixir library to help selecting the right elements in your tests.

Topics

Resources

License

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •