@sprucelabs/spruce-cli
Version:
Command line interface for building Spruce skills.
42 lines (36 loc) • 1.61 kB
text/typescript
import { diskUtil, namesUtil } from '@sprucelabs/spruce-skill-utils'
import { test, assert } from '@sprucelabs/test-utils'
import testUtil from '../../../tests/utilities/test.utility'
import AbstractPermissionsTest from './support/AbstractPermissionsTest'
export default class CreatingPermissionsTest extends AbstractPermissionsTest {
('can create permission contract named booking', 'booking')
('can create permission contract named awesome', 'awesome')
(
'can create permission contract named Point of Sale Checkout',
'Point of Sale Checkout'
)
protected static async createsFileBasedOnName(nameReadable: string) {
const { results } = await this.executeAndGetContract(nameReadable)
await this.assertValidActionResponseFiles(results)
}
()
protected static async generatesExpectedPermissionContract() {
const { contractPath } = await this.executeAndGetContract()
const contents = diskUtil.readFile(contractPath)
assert.doesInclude(
contents,
'const bookingPermissions = buildPermissionContract'
)
}
private static async executeAndGetContract(nameReadable = 'Booking') {
const results = await this.createPermissionContract(nameReadable)
const expected = this.resolvePath(
`src/permissions/${namesUtil.toKebab(nameReadable)}.permissions.ts`
)
const contractPath = testUtil.assertFileByPathInGeneratedFiles(
expected,
results.files
)
return { contractPath, results }
}
}