Skip to content

Instantly share code, notes, and snippets.

Avatar

Kimberlee Johnson kimberleejohnson

View GitHub Profile
@kimberleejohnson
kimberleejohnson / package.json
Created Oct 3, 2019
Dependencies for using Twilio in Azure (for Mean Girls Day app)
View package.json
{
"name": "twilio-azure-functions-node",
"version": "1.0.0",
"description": "Receive SMS and calls with Azure Functions and Node.js",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "Twilio and your-name",
"license": "MIT",
@kimberleejohnson
kimberleejohnson / index.js
Created Oct 3, 2019
Responding to a text to a Twilio number from Azure (for Mean Girls Day app)
View index.js
// We're using Twilio in this app, and getting ready to send a message response
const MessagingResponse = require('twilio').twiml.MessagingResponse;
// We're exporting our function from Azure
module.exports = function (context) {
// Logging what's happening in Azure
context.log('JavaScript HTTP trigger function processed a request.');
// Create a new TwiML response
const response = new MessagingResponse();
@kimberleejohnson
kimberleejohnson / index.js
Last active Oct 3, 2019
Playing an audio file in response to a call to a Twilio number from Azure
View index.js
// Use Twilio in this app
const VoiceResponse = require('twilio').twiml.VoiceResponse;
// Export the function from Azure
module.exports = function (context) {
// Log the response in Azure
context.log('JavaScript HTTP trigger function processed a request.');
// Create a new TwiML response, this time using voice
const twiml = new VoiceResponse();
@kimberleejohnson
kimberleejohnson / extends-specification.groovy
Last active Jan 22, 2020
Tests are recognized by Spock if a Groovy or Java class extends the abstract class Specification.
View extends-specification.groovy
class CampaignServiceSpec extends Specification {
// fields
// fixture methods
// feature methods
// helper methods
}
View shared-field.groovy
@Shared res = new VeryExpensiveResource()
@Shared survey = surveyDataService.get(1) // shared resource by several feature methods
View fixture-methods.groovy
def setupSpec // runs once - before the first feature method
def setup // runs before every feature method
def cleanup // runs after every feature method
def cleanupSpec // runs once - after the last feature method
View test-domain-class.groovy
package com.testguide
import grails.testing.gorm.DomainUnitTest
import org.springframework.validation.FieldError
import spock.lang.Specification
import static com.testguide.StringUtil.newUuid
import static com.testguide.test.UnitTestDomainFactory.createDomain
class CampaignSpec extends Specification implements DomainUnitTest<Campaign> {
View test-campaign-creation.groovy
import grails.testing.gorm.DomainUnitTest
import spock.lang.Specification
class CampaignSpec extends Specification implements DomainUnitTest<Campaign> {
}
View testing-services.groovy
package com.testguide
import com.testguide.CampaignService
import com.testguide.User
import com.testguide.dataservice.UserDataService
import grails.testing.mixin.integration.Integration
import grails.web.servlet.mvc.GrailsParameterMap
import org.springframework.mock.web.MockHttpServletRequest
import org.springframework.test.annotation.Rollback
import org.springframework.transaction.annotation.Transactional
View controllers.groovy
def controllerFunction() {
def user = User.get(params.userId)
if (!userPermissionService.hasPermissionToDoThis(user) {
response.status = 403
render "User unauthorized"
return
}
def comments = commentsService.getByUser(user)
...
You can’t perform that action at this time.