aboutsummaryrefslogtreecommitdiffstats
path: root/spec/lib
AgeCommit message (Collapse)Author
2018-03-18Refs #6210 Remove status value attribue from Chouette::VehicleJourney and ↵6210-remove-attributes-from-modelscedricnjanga
section status fron Chouette::JourneyPattern
2018-03-16Fix stop_area state for filter and display. Update reflex sync to use ↵Luc Donnet
confirmed_at. Refs #6141
2018-03-15Avoid error when distance or time cost is ignored. Refs #6203Alban Peignier
2018-03-15RouteWayCostUnitConverter: Round kilometres to 2 decimal placesTeddy Wing
The JavaScript validation doesn't pass if we have more than two decimal places (I think because it uses a number field step value of 0.01). Round the values to allow them to pass frontend validation. Refs #6203
2018-03-15Rename `RouteWayCostJSONSerializer` to `RouteWayCostUnitConverter`Teddy Wing
Because we need to pass a Ruby hash to Rabl instead of a JSON string, get rid of our serialiser and instead turn it into a function that just converts the distance & time units. Fix a bug in the test that had the `'1-2'` key as a symbol instead of a string which was caused by a copy-paste from JSON and not being thorough enough in search-and-replace. Refs #6203
2018-03-15Add `RouteWayCostJSONSerializer`Teddy Wing
This serialiser will take `Route#costs` and convert the distance and time fields from meters to kilometres and seconds to minutes respectively. We need this because the frontend uses kilometre and minute units while the TomTom API gives us the others (and we store the data we get from TomTom without treatment). Unfortunately, due to the way that Rabl works, this doesn't quite work just yet. The serializer returns a string, and Rabl just puts this string into the JSON output instead of a real JSON hash. Looks like I'm going to have to convert my serializer into a generic converter. Refs #6203
2018-03-15Merge pull request #379 from ↵Alban Peignier
af83/6095-route--calculate-distance-and-time-cost-between-stops Calculate distance and time cost between Route stops. Refs #6095
2018-03-15Route: Don't run `#calculate_costs!` on callback if TomTom disabledTeddy Wing
We say `TomTom` is disabled when no API key is present. If this is the case, the `after_save` callback that uses it shouldn't be executed. I had to change my `API_KEY` constant to an instance variable to be able to change it for testing. Refs #6095
2018-03-14Add `WayCostCollectionJSONSerializer`Teddy Wing
A JSON serialiser for a collection of `WayCost`s. This will be used to store `WayCost`s for a `Chouette::Route` in the `Route#costs` JSON field. Refs #6095
2018-03-14Add `StopAreasToWayCostsConverter`Teddy Wing
A new class that converts a list of `StopArea`s to `WayCost`s. This will be called from `Chouette::Route` to get `WayCost`s from its stops, which will then be JSON serialised and stored in `Route#costs`. Update `WayCost`: * Remove comment about calculating the ID automatically. It actually needs to be the same as the `JourneyPattern#cost` ID (`key`), which is a string with the IDs of the departure and arrival stops. * Make `#==` check that `id`s are the same, which necessitates making `id` a reader. Refs #6095
2018-03-14TomTom::Batch: Extract code to `#extract_costs_to_way_costs!`Teddy Wing
Extract some code from `#batch` to allow us to test the part that takes distance and time values from the response JSON and put fill them into `WayCost`s. In order for the test to work, had to add an `#==` method to `WayCost` and make `distance` and `time` accessors. The JSON file fixture is a copy of a response from the TomTom `/batch` API. The file is pretty big. I'm not sure if maybe I should condense it for the sake of test performance. Refs #6095
2018-03-14TomTom::Batch: Rename `#convert_way_costs_for_batch`Teddy Wing
Rename to `#convert_way_costs` since this method now lives inside the `TomTom::Batch` class, so that part of the name became redundant. Refs #6095
2018-03-14TomTom: Provide `TomTom.batch(...)` methodTeddy Wing
This change enables us to call `TomTom.batch(...)` instead of `TomTom.new.batch(...)` a couple commits ago. This is nice because the initialisation was kind of unnecessary for users of the class. Refs #6095
2018-03-14Move `lib/tom_tom.rb` to `lib/tom_tom/batch.rb`Teddy Wing
Separate the functionality a little better by moving the `/batch` endpoint code into a new class. The goal here is also to lay the foundation for being able to call `TomTom.batch()` instead of `TomTom.new.batch()`. Refs #6095
2018-03-14Revert "TomTom: Add method for `calculateRoute` endpoint"Teddy Wing
This reverts commit f28a4b2c5b348bc12b455aa0cd76a9513103aea7. As stated in that commit, I'm going to use the `/batch` endpoint instead of `/calculateRoute` because I know that's already working.
2018-03-14TomTom: Add method for `calculateRoute` endpointTeddy Wing
A new method to provide access to the `/calculateRoute` endpoint, which calculates costs for a single route through a bunch of waypoints. This doesn't work currently because the API requires that I send `supportingPoints` in the body of the request. Since I'm not too clear on what those are, I'm going to cut off development of this method here and just use `#batch` instead for my purposes. My idea was to use this endpoint instead of `/batch` to allow us to calculate a single route instead of having the API do `/calculateRoute` for each of our point pairs. This seemed like it would be more efficient, and give us our distance and time costs between each waypoint all in one go, but since I'm not clear on how to use this API and whether it will give us the correct data, I'm going to stick with `/batch`. I'll probably be reverting this code. Just committing it now in case it becomes useful in the future. Refs #6095
2018-03-14Add `TomTom` class to communicate with their APITeddy Wing
Provides an interface to communicate with the TomTom API. Currently includes a method `#batch` to make a batch routing request (https://developer.tomtom.com/online-routing/online-routing-documentation/batch-routing). Left a bunch of development-related code in just to preserve my in-progress stages. Originally I was told to use the matrix routing API, but that turned out to not match what we wanted. Namely, matrix routing would produce a table with every point routed with every other point. We instead want routes of each segment in a line, in order (or, just the diagonal of the matrix). Using the batch API allows us to get the routes we need without doing unnecessary work. Update the `WayCost` class to provide `departure` and `arrival` methods as readers, and make `id` an optional parameter for now. (We still need to figure out how we're dealing with ID.) Refs #6095
2018-03-08Refs #6028 small changes in model attribute for CC6028-compliance-controls-model-attributescedricnjanga
2018-01-25Refs #5586; CR #2Zog
2018-01-25Refs 5586; CR #1Zog
2018-01-25Refs #5586; Add more specs on AF83::Decorator::LinkZog
2018-01-25Refs #5586; Add more specs on AF83::Decorator::LinkZog
2018-01-25Refs #5586; Add a `feature` option on the `action_links`Zog
2018-01-25Refs #5586 @2h; Refactor the whole thingZog
We now have a ModelDecorator and an "instance" decorator, all in the same file, with the same API.
2018-01-25Refs #5586 @2h; Better implementation of groupsZog
Used it in Lines#index and Lines#show, probably broke everything else
2018-01-25Refs #5586 @1h; Primary and secondary lonks implementationZog
As well as the `to_html` method
2018-01-25Refs #5586 @4h; First `action_links` refactorZog
- Implement new API - Migrate the LineDecorator - ensure no change on the "lines/index" view
2018-01-05Add Range#intersect?. Refs #5299Alban Peignier
2018-01-05Move (clean) period split logic into Range#remove. Refs #5299Alban Peignier
2017-12-20Merge pull request #151 from ↵Luc Donnet
af83/5281-workbench-import-structural-bug-reading-zip 5281 workbench import structural bug reading zip
2017-12-20Merge pull request #124 from af83/5006-wb_import_filter_refs_with_foreign_linesLuc Donnet
5006 wb import filter refs with foreign lines
2017-12-20Merge branch 'master' into 5333-add-policies-for-referentials-sharing5333-add-policies-for-referentials-sharingAlban Peignier
2017-12-19Refs #5325@0.5h; Use policies for calendar sharingZog
Use policies to determine if a user is allowed to share a calendar, instead of a hardcoded string
2017-12-19Refs #5333@1.5h; Use permissions to sync StopAreas and LinesZog
- add missing policies - update permissions translator - update views to check for the permission - update views helper to check for the permission - uipdate controllers to check for the permission
2017-12-15Refs: #5006@0.7h; CR changes from #5006 & staring error_messages in imports/showRobert
- Renaming as requested STIF::NetexFile::Frame.get_line_object_id -> get_sgort_id - working on error_messages for imports#show
2017-12-14Refs: #5006@12h;Robert
Implementing allowed vs foreign line lookup for the zip service - Adapting `lib/stif/netex_file.rb` to expose the already implemented matching - `app/services/zip_service.rb` augmented to check for allowed lines and returning forbidden lines - Specs with fixtures and using the beforementioned new zip support in the specs - Fixture directories for the new specs
2017-12-13Fix compliance control block#edit view pageheadercedricnjanga
2017-11-06Refs #4849 change compliance control clone speccedricnjanga
2017-11-02ComplianceControlSetCopier spec: Test that `#copy` returns CCkSetTeddy Wing
The `ComplianceControlSetCopyWorker` depends on `ComplianceControlSetCopier#copy` to return the `ComplianceCheckSet` that it creates. Refs #4782
2017-10-17Fixes: #4727@0.1h; Added organisation to clone for and rebased master4727-clone-compliance-control-setRobert
2017-10-17Refs: #4727@2h; Debugged test setup to comply to new validationRobert
2017-10-17Refs: #4727@3h; Specing and implementing lib function to clone ↵Robert
ComplianceControlSet
2017-10-16Fix test spec/lib/compliance_control_set_copier_spec.rb due to uniqueness of ↵Luc Donnet
compliance_control code Refs #4731
2017-10-12Refs: #4709@0.75h;Robert
DONE: - Copied all node atts for ComplianceChecks - Migration of CompliancCheck#criticity int -> string TODO: - Check what to do with attribute ComplianceCheck#type
2017-10-12Refs: #4709@1h; Preparing tests for correctly copy of data and migrationRobert
2017-10-12Refs: #4709@0.15h; Need to merge 4707 with fixed specsRobert
2017-10-10Fixes: #4707@1.5h;Robert
2017-10-09Refs: #4629@1h; Implementing CR + missing worker specRobert
2017-10-09Fixes: #4629@4.5h; Implemented copyRobert
2017-09-25ModelAttribute spec: Move `#instance_variable_set` to `before` block4401-compliance-control-ModelAttribute--address-Robert,s-commentsTeddy Wing
Recommendation from Robert. The `@__all__` is an implementation detail. It's more fragile to use `#instance_variable_set` in each test. Instead, put that part in a `before` block so that if we decide to change it, we only have to do so in one place. Now each test can blithely assume that `ModelAttribute.all` starts out as an empty list. Refs #4401