summaryrefslogtreecommitdiffstats
path: root/tests
Commit message (Collapse)AuthorAgeFilesLines
* Clean up, fix and rename db tables.Harald Eilertsen2021-09-162-4/+4
| | | | | | | | | | | | | | | | | This patch got a bit more involved than what was originally planned, but since we're messing with the tables I decided to do it all right away. - Moves the constraint definition to the CREATE TABLE statement for the concerts table. This replaces the existing KEY definition that it had. - Make sure the venues table is created before the concerts table so that the above mentioned constraint definition works. - Rename the tables. Use the wpdb-prefix and make the name a bit prettier. This caused some changes in the Concert and Venue classes, and for slightly silly reasons some test classes. The code actually turned out better (for the most part), but some refactoring can still be done. The column names remains unchanged for now.
* Fix ConcertTest::testFetchConcertByVenueAndDate.Harald Eilertsen2021-09-161-1/+1
| | | | | | | | Since the date column has changed types, so has the representation in the concert class. We should really change the property in the Concert class be a proper DateTime object.
* Update ConcertsTable tests.Harald Eilertsen2021-09-111-3/+65
| | | | | Test that less privileged users don't see all the controls, and that no controls are rendered on the public facing pages.
* Change how we load the plugin.Harald Eilertsen2021-09-111-1/+1
| | | | | | | | | | | | | | Since we now have code that should be available, both on the public blog and in the admin section, we need to be more graular when loading the various parts of the plugin. We still try to avoid loading admin-only parts for the public blog, but allways load the parts that we need in either case. Also avoid running the db migrations when running unit tests, as the schema is copied over from the dev environment it just caues problems. Finally, don't hardcode unit tests to always be in_admin, but rather determine that for each test.
* tests: Make an actual test for ConcertsTableHarald Eilertsen2021-09-111-5/+24
| | | | | | | | | | | There's a bit of setup to make this work as it should, we need to ensure that the current user and current screen is set to proper values so that the WordPress api's `is_admin()` and `current_user_can()` work as they should. This first test just tests that all the expected forms are being rendered for the admin user accessing the table through the site admin interface.
* Throw instead of log error from Concert class.Harald Eilertsen2021-09-061-4/+4
| | | | | Should get rid of most of the annoying output during testing, and allow moving error handling and logging to the presentation layer.
* Use find_concerts to check for duplicates on create.Harald Eilertsen2021-09-061-0/+16
| | | | This also adds a number of new filters to find_concerts.
* Add test for ConcertsTableHarald Eilertsen2021-09-051-0/+94
|
* test: concertlogs table is gone, no need to clear itHarald Eilertsen2021-09-051-1/+0
|
* Fix tests.Harald Eilertsen2021-09-051-0/+1
| | | | | Since the plugin only should load on the admin side, set the WP_ADMIN constant before loading it in the tests.
* Fix saving and fetching roles from Concerts table.Harald Eilertsen2021-09-011-19/+4
|
* Begin move roles and status field to concerts table.Harald Eilertsen2021-06-271-0/+25
|
* Remove Band class and tests.Harald Eilertsen2021-06-271-69/+0
|
* Refactor ConcertTest some more.Harald Eilertsen2021-06-271-58/+25
| | | | | Create more of the concerts used by tests into the wpSetupBeforeClass hook.
* Refactor ConcertTests and some cleanupHarald Eilertsen2021-06-271-68/+75
| | | | | | | | | | | The commit changes the way we populate the database for the tests by creating more entries up front. This reduces the amount of duplicated code between the tests, but also introduce some challenges. As modifications to the database done in the wpSetUpBeforeClass hook are not cleaned up automatically by the WP_PHPUnit framework, we also have to add a wpTearDownAfterClass hook so anything we set up in this class does not disturb any other tests in other classes.
* Begin move roles and status field to concerts table.Harald Eilertsen2021-06-141-0/+24
| | | | There's no need to have a separate table (concertlogs) for these fields.
* Streamline Concert api.Harald Eilertsen2021-06-121-7/+7
| | | | | Reduce to one find_concerts function taking a filter to limit the selection.
* Allow custom text for no selection in select_fields.Harald Eilertsen2021-05-241-0/+17
|
* Add function to generate selection boxes.Harald Eilertsen2021-05-241-0/+53
|
* Make it possible to list all concerts.Harald Eilertsen2021-05-101-0/+23
|
* Method to find concerts at given venueHarald Eilertsen2021-05-091-0/+40
|
* Method to find concerts for a given city.Harald Eilertsen2021-05-091-0/+41
|
* Include info from venue in concerts.Harald Eilertsen2021-05-091-1/+20
| | | | | | | | | | | | | | | | | | | | This makes the concert a full object containing all relevant info, while we can still segment the data in the db. Instead of this: $concert = GiglogAdmin_Concert::get($concert_id); $venue = GiglogAdmin_Venue::get($concert->venue()); echo "{$concert->name()} @ {$venue->name()} : {$concert->cdate()}" You can now do: $concert = GiglogAdmin_Concert::get($concert_id); echo "{$concert->name()} @ {$concert->venue()->name()} : {$concert->cdate()}" And yeah, renamed Concert::find_cid() to Concert::get() and changed it's semantics somewhat. It now either returns the given concert if it exists, or NULL if it does not. Simpler function; simpler to use.
* Add missing license tags to files.Harald Eilertsen2021-04-261-0/+5
|
* added venue test to check duplicate with all letter casesAndreaChirulescu2021-04-241-0/+11
| | | | CSS for edit form in giglog
* Added an uppercase in sql for venue and concert duplicate checkAndreaChirulescu2021-04-231-0/+22
| | | | Added test to create duplicate concert with varied cases in string
* Concert::create return NULL if concert already exist.Harald Eilertsen2021-04-221-1/+1
| | | | | | We probably need some better error handling here. There's a myriad of reasons why this call could fail, and we might need to communicate the failure reason somewhere.
* Add some tests for Concert class.Harald Eilertsen2021-04-221-0/+49
|
* Fix Bands class constructor.Harald Eilertsen2021-04-211-0/+2
| | | | | | The expected attributes did not have names corresponding with the table columns, which meant that creating a band directly from a returned table row did not produce the expected result.
* Refactor BandTest.Harald Eilertsen2021-04-181-13/+22
| | | | Set up a test env before running the test cases.
* Add a few more tests for GoglogAdmin_Band class.Harald Eilertsen2021-04-161-0/+28
| | | | | Sidenote: UK is not included in the country list. Did the brexit everything?
* Refactor Band::create into Band::find and ::createHarald Eilertsen2021-04-151-1/+9
| | | | | | Not sure if it's a good idea to have `create` return an existing band. Will have to look at callsites to see if it should be renamed back or if the callsite should be changed.
* Make Band::create return band object, not just id.Harald Eilertsen2021-04-151-0/+22
|
* Fix test setup for wp-env.Harald Eilertsen2021-04-153-65/+63
| | | | | | | | | | | | | | | | | | | | | | | | | After much reading I finally found the magic incantations, so now we can run tests with real database access. This means we no longer need the primitive $wpdb_stub. The setup as now _requires_ wp-env, or an environment set up sufficiently similar. Running in wp-env is the easiest, so aim for that. I've added a `run-tests` script that will invoke the magic incantation without having to remember it every time. To set up for testing: 1. make sure you have composer[1] installed. 2. run `composer install` 3. make sure you have wp-env[2] installed 4. start the wordpress env: `wp-env start` 5. run the tests: `./run-tests` Let the thousand tests bloom! [1]: https://github.com/wp-phpunit/wp-phpunit [2]: https://www.npmjs.com/package/@wordpress/env
* Use (object) notation to create plain objects.Harald Eilertsen2021-04-141-17/+22
|
* Add license comment _after_ the php opening tag.Harald Eilertsen2021-04-142-2/+2
|
* Switch to Reuse for license handling.Harald Eilertsen2021-04-142-0/+10
| | | | Run `reuse lint` to verify that all material is licensed.
* Change venues into proper objects.Harald Eilertsen2021-04-102-0/+101
This means most static functions now either return a venue object, or an array of venue objects. The exception is the `all_cities` method, which still return an array of cities as strings. The constructor has been made private, as it should not be used directly from anywhere but the static methods on the Venue class.