Deploying at tenant level is not a good idea when you have multiple site collections.
Suppose you have develop site collection as:
- HR
- IT
- Facilities
and each site collection has apps that are not relevant to other collection, deploying everything at tenant level will end up huge list of apps and it would be difficult for tenant administrator if for some reason in future, Administrator wants to categorize apps for each site collection.
Regarding your question if app is available at both levels (site collection, tenant level) please see the link below :
Priority:
If you have the same solution install on both app catalogs the Site app catalog will have priority over Tenant app catalog
App catalog
To test, you can always use local workbench as well as SharePoint workbench:
Local workbench: https://localhost:4321/temp/workbench.html
SharePoint workbench: https://yourSharePointURL/sites/ABC/_layouts/15/workbench.aspx
Once you test in SharePoint workbench, only then you can deploy that to app catalog.
To Test the app in catalog at site collection level or Tenant level:
- I have created a Test SPFX and deployed at both tenant level and site collection level.
- To add the app, Go to site contents, you will see "test" app two times. One is from tenant level and other is from site collection level.
- At this point to know if the app is coming from tenant or site collection, click the App details:
App details will show you the path of SPFx package. For tenant level, it will be like:
App details for site collection level, it will be like:
- I have found, from site content, you can add only one app (either from site collection app catalog or from tenant app catalog) so I am not sure how the Priority works here as I cannot add same app once added in the page.
Hope the above answer can give you some direction.
Again back to the point, to test the app use SharePoint workbench instead of local workbench.