# n-concept-ids
Used for storing static data about concepts in a single place.

## Why
### The problems

* Concept ids are not immutable, they can change in UPP without warning
We need to hardcode concept IDs in some apps in order to drive content

* Podcast series are not modelled in a useful way in the C&M platform and it's not possible to assign promptional content/images to a Podcast as a whole.

* We don't want hacks like this spread around our code bases, we want to keep them in one place where it's easier to track the use of a hack and update changes more quickly.

### The solution
- Only hardcode these details in this repo, and reference this repo when you need to use them
- When IDs change, update them in here and issue a release.

## What it means when scheduled tests fail.
This repo has scheduled tests that check whether the hardcoded concept IDs have changed.
If they have changed it will show a failed test called; `has not been given a new ID`.

### What to do
- clone this repo
- update the outdated id in this repo
- raise a PR
- once merged, issue a release
- wait for renovate to create PRs in consumers of this module
- merge those PRs

## How to run tests locally

```
npm install
npm run test:local
```