Airport Gap is a RESTful API to help you improve your API automation testing skills. It provides access to a database of airports, calculate distances between airports, and allows you to save your favorite airports.
You can create a free Airport Gap account at https://airportgap.dev-tester.com/.
Airport data is provided by OpenFlights.org under the Open Database License.
Airport Gap is provided by Dev Tester - articles and tips to help you improve your test automation skills as a developer.
QuickStart: Setting up and running the application locally
Airport Gap is a Rails 7 application. You need the following dependencies installed to run the application:
- Ruby (current version: 3.1.2)
- Bundler (current stable 2.x version)
- Yarn (current stable version)
- PostgreSQL (version 12.0 or greater)
- Foreman (current version)
Once the dependencies are installed, run ./bin/setup
to set up the application. The script will perform the following steps automatically:
- Install Ruby dependencies (
bundle install
) - Install Javascript dependencies (
yarn install
) - Set up the database with seed data (
rails db:prepare
)
When everything is installed, run ./bin/dev
to start all the required processes to build the CSS and JavaScript and start the application server. The application will be accessible at http://localhost:5000/.
Automated tests
The Airport Gap application has a suite of automated tests to help during development.
Unit tests are set up with RSpec. To run the tests, set up the application's Ruby dependencies (bundle install
) and a test database, and run rails spec
.
End-to-end tests for the API are covered with APId. To run the tests, download the APId binary, set it up in your PATH
, and run apid check
. The tests require the following environment variables:
AIRPORT_GAP_API_URL
: The URL of the API endpoints. If you're running the application locally, the URL ishttp://localhost:5000/api
.AIRPORT_GAP_EMAIL
: The email address for a valid Airport Gap account in the application.AIRPORT_GAP_PASSWORD
: The password for the Airport Gap account in the application.